Method and apparatus for managing vending machine offers

ABSTRACT

In accordance with one or more embodiments, a promotion redeemable at a vending machine is determined. The promotion comprises an offer distinct from a general offer to sell products from the vending machine at posted prices The promotion is output (e.g., via an output device of a vending machine, an output device of a peripheral device of a vending machine, an output device of a customer device, or a combination thereof). In some embodiments, the promotion may be determined such that it satisfies the goal of increasing the profitability of the vending machine and/or the goal of conserving an inventory of coins in the vending machine. In some embodiments, determining a promotion may comprise constructing a promotion instance by populating a parameter of a promotion type with a value selected based on one or more rules.

This Application claims the benefit of commonly-owned, co-pendingProvisional Application No. 60/473,815, filed May 28, 2003 in the nameof Walker et al. and entitled APPARATUS, SYSTEM AND METHOD FOR PROFITMANAGED VENDING MACHINE TRANSACTIONS. The entirety of this applicationis incorporated by reference herein for all purposes.

This Application is related to the following commonly-owned U.S. PatentApplications:

-   -   1) U.S. patent application Ser. No. 08/920,116 entitled “Method        And System For Processing Supplementary Product Sales At A        Point-Of-Sale Terminal”, filed Aug. 26, 1997 in the name of        Walker et al., which issued as U.S. Pat. No. 6,119,099 on Sep.        12, 2000;    -   2) Co-pending U.S. patent application Ser. No. 08/947,798        entitled “Method And Apparatus For Dynamically Managing Vending        Machine Inventory Prices”, filed Oct. 9, 1997 in the name of        Tedesco et al.;    -   3) Co-pending U.S. patent application Ser. No. 09/345,092        entitled “Vending Machine System And Method For Encouraging The        Purchase Of Profitable Items”, filed Jun. 30, 1999 in the name        of Walker et al.;    -   4) Co-pending U.S. patent application Ser. No. 09/603,677        entitled “Method And Apparatus For Selecting A Supplemental        Product To Offer For Sale During A Transaction”, filed Jun. 26,        2000 in the name of Mueller et al.    -   5) Co-pending U.S. patent application Ser. No. 09/994,810        entitled “Method And Apparatus For Utilizing Demand Information        At A Vending Machine”, filed Nov. 27, 2001 in the name of Walker        et al.;    -   6) Co-pending U.S. patent application Ser. No. 10/095,372        entitled “Method And Apparatus For Vending A Combination Of        Products”, filed Mar. 11, 2002 in the name of Walker et al.; and    -   7) Co-pending U.S. patent application Ser. No. 10/403,184        entitled “Method And Apparatus For Managing And Providing        Offers”, filed Mar. 28, 2003 in the name of Van Luchene et al.

The entirety of each of the above applications is incorporated byreference herein for all purposes.

BACKGROUND

Traditional vending machines provide sellers with the ability to offerproducts to consumers in an automated fashion, thereby allowing the saleof products at places where face-to-face retailing efforts are notpractical (e.g. the lobby of an office building) and at timesinconvenient for traditional retailers (e.g. 3 AM on a Tuesday morning).However, traditional vending machines do not permit the flexibilityenjoyed by human retailers in dynamically responding to changes insupply and demand.

Applicants have previously recognized that significant benefits ensuefrom vending machines configured to dynamically respond to marketforces. For example, Applicants' co-pending U.S. patent application Ser.No. 08/947798, entitled METHOD AND APPARATUS FOR DYNAMICALLY MANAGINGVENDING MACHINE INVENTORY PRICES and filed Oct. 9, 1997, enables theautomated, dynamic pricing of vended products based on stored rules thatconsider up-to-date supply and demand data gathered when no humansalesperson is present. Further, Applicant's co-pending U.S. patentapplication Ser. No. 10/095372, entitled METHOD AND APPARATUS FORVENDING A COMBINATION OF PRODUCTS and filed Mar. 11, 2002, enables theautomated, dynamic configuration of promotional product combinationsbased on supply and demand data. Further still, Applicant's co-pendingU.S. patent application Ser. No. 09/218085, entitled METHOD ANDAPPARATUS FOR VENDING PRODUCTS and filed Dec. 22, 1998, enables theautomatic selection of products for customers based on supply and demanddata. Additionally, Applicant's co-pending U.S. patent application Ser.No. 09/345092, entitled VENDING MACHINE SYSTEM AND METHOD FORENCOURAGING THE PURCHASE OF PROFITABLE ITEMS and filed Jun. 30, 1999,enables the presentment of offers for substitute products based onsupply and demand data.

The advantages of the inventions described in the above applications aresignificant. However, given the complexity of the marketplace, anongoing need exists for vending machine systems and methods thatdynamically respond to market forces. More specifically, an ongoing needexists for vending machine systems and methods that dynamicallyinstitute promotional tactics in a beneficial manner (e.g., in a mannerthat increases overall machine profit).

Further, many potential customers of prior art vending machines areunable to purchase items when machines require “correct change only”. Avending machine may require “correct change only” when the machinecontains an insufficient amount of machine coin inventory that may beused to provide customers with change. Accordingly, a need exists forsystems and methods that preserve vending machine coin inventory so thatmore customers may purchase vending machine products despite theirinability to tender exact change, thus resulting in fewer losses ofpotential sales.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram of an embodiment of a vending machineconsistent with some embodiments of the present invention.

FIG. 2A is a block diagram of an embodiment of a system consistent withsome embodiments of the present invention.

FIG. 2B is a block diagram of an embodiment of another system consistentwith some embodiments of the present invention.

FIG. 2C is a block diagram of an embodiment of yet another systemconsistent with some embodiments of the present invention.

FIG. 3 is a diagram illustrating an example of the external appearanceof a vending machine consistent with some embodiments of the presentinvention.

FIG. 4 is a diagram illustrating a portion of software that may be usedin some embodiments of the present invention.

FIG. 5A is a schematic block diagram of software architecture that maybe used in a vending machine, consistent with some embodiments of thepresent invention.

FIG. 5B is a schematic block diagram of software architecture that maybe used in a vending machine, consistent with some embodiments of thepresent invention.

FIGS. 6A and 6B are a table illustrating an example data structure of anexample product inventory database for use in some embodiments of thepresent invention.

FIG. 7 is a table illustrating an example data structure of an examplecorn inventory database for use in some embodiments of the presentinvention.

FIGS. 8A and 8B are a table illustrating an example data structure of anexample transaction history database for use in some embodiments of thepresent invention.

FIG. 9 is a table illustrating an example data structure of an exampleoffer history database for use in some embodiments of the presentinvention.

FIG. 10 is a table illustrating an example data structure of an exampleavailable offers database for use in some embodiments of the presentinvention.

FIG. 11 is a table illustrating an example data structure of an examplerules database for use in some embodiments of the present invention.

FIG. 12 is a table illustrating an example data structure of anotherexample rules database for use in some embodiments of the presentinvention.

FIG. 13 is a flow diagram illustrating an exemplary process consistentwith some embodiments of the present invention.

FIG. 14 is a flow diagram illustrating an exemplary process consistentwith some embodiments of the present invention.

FIGS. 15A and 15B are a flow diagram illustrating an exemplary processconsistent with some embodiments of the present invention.

FIG. 16 is a flow diagram illustrating an exemplary process consistentwith some embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Applicants have recognized that, in some situations, it may beadvantageous to output a promotion to a customer of a vending machine,the promotion being distinct from a general offer to sell products fromthe vending machine at posted prices.

Applicants have further recognized that, in some situations, such apromotion may be utilized to manage the profitability of a vendingmachine.

Applicants have further recognized that, in some situations, taking.into account certain information when determining such a promotion mayaid in the management of the profitability of the vending machine. Suchinformation may comprise, for example, information regarding a currentinventory of a vending machine, an expected restocking of the vendingmachine, a current coin inventory of the vending machine, at least onetransaction previously completed at the vending machine, and/or atransaction currently initiated at the vending machine.

Applicants have yet further recognized that, in some situations,multiple such promotions may be possible and thus it can be beneficialto have software operable to select which, if any, of the possiblepromotions to output. Such software may, for example, enable anefficient process for selecting the promotion that is likely to resultin the most profit for a vending machine and/or that is most likely tobe accepted by a customer of the vending machine.

With these and other advantages and features of the invention that willbecome hereinafter apparent, the nature of the invention may be moreclearly understood by reference to the following detailed description ofthe invention, the appended claims and to the several drawings includedherein.

In the following description, reference is made to the accompanyingdrawings that form a part hereof, and in which is shown, by way ofillustration, specific embodiments in which the invention may bepracticed. These embodiments are described in sufficient detail toenable those skilled in the art to practice the invention, and it is tobe understood that other embodiments may be utilized and thatstructural, logical, software, and electrical changes may be madewithout departing from the scope of the present invention. The followingdescription is, therefore, not to be taken in a limited sense.

According to an embodiment of the present invention, a promotionredeemable at a vending machine is determined, the promotion comprisingan offer distinct from a general offer to sell products from the vendingmachine at posted prices. The promotion is then caused to be output.

For example, a peripheral device associated with a vending machine maydetermine, based on current inventory and a rate at which each of theproducts available from the vending machine have been selling, that itmay be desirable to promote the sale of a certain slow-selling productin order to increase the profits of the vending machine for a currentsales period. Accordingly, the peripheral device may determine that itwould be beneficial to promote the slow-selling product either by (i)promoting the slow-selling product as an alternate product to a productselected by a customer or (ii) by offering the slow-selling product in apackage along with a more popular product, for a package price that isless than the sum of the retail prices of the slow-selling product andthe popular product. The peripheral device may select one of thesepossible promotions by, for example, calculating an expected value foreach and selecting the one with the highest expected value. Assuming thepackage promotion is associated with the higher expected value, theperipheral device may output, via an output device of the peripheraldevice, a promotion informing customers of the vending machine that theslow-selling product and the popular product are available for a packageprice. Alternatively, the peripheral device may direct a processor ofthe vending machine to cause an output device of the vending machine tooutput the promotion.

According to another embodiment of the present invention, an occurrenceof a predetermined event may be determined. An instance of a promotionmay be constructed in response to the determination of the predeterminedevent. The instance of the promotion may comprise an offer distinct froma general offer to sell products from the vending machine at postedprices. The instance of the promotion may be constructed based on (i) atleast one of data associated with transactions completed at a vendingmachine and data associated with a transaction currently initiated atthe vending machine; and (ii) a predetermined goal stored in a memory.The instance of the promotion may then be output via an output device ofthe vending machine.

For example, it may be determined that a coin inventory of a vendingmachine is lower than a predetermined threshold. Accordingly, in orderto conserve the current inventory of coins and avoid requiring “exactchange only” for future transactions, it may be determined that an offerfor an additional product in exchange for any change due should beoutput to a customer who deposits more money than required for aselected product. Thus, when a customer inputs a $1.00 and selects forpurchase a product associated with a retail price of $0.65, the vendingmachine may determine a promotion that offers to the customer anadditional product in exchange for the $0.35 that is otherwise due thecustomer. The additional product may be determined, for example, basedon the selected product. For example, a complementary product may beselected (e.g., if the customer selects a snack, the additional productmay be a drink).

In accordance with some embodiments, apparatus, systems and methods aredisclosed for managing the profitability of a vending machine byconstructing promotions based on an evaluation of sales data in light ofcriteria including but not limited to stored, or dynamically generated,rules.

According to one embodiment of the present invention, sales and/or costdata is monitored and compared to a profit goal. If a forecast based onthe sales and/or cost data indicates that the profit goal will likelynot be reached within a predefined period (e.g., by a restock date), adetermination is made as to which of several possible promotion typesmay be appropriate for the circumstances based on stored rules. Severalpromotion types are disclosed herein, including (i) combination productpromotions, (ii) “dynamically priced upsell” promotions, in whichcustomers are offered the opportunity to purchase products for an amountequal to the change due from a first, triggering transaction, and (iii)“fixed-price upsell” promotions, in which customers are offered theopportunity to purchase products for an amount that may require more orless than the change due from a first, triggering transaction. For eachpotential promotional type, a hypothetical promotion instance may beconstructed based on stored rules (e.g., a potential offer to sell anadditional candy bar for $0.35), and an expected profit associated witheach hypothetical promotion instance is calculated (e.g. $0.10).According to the relative expected profitability of the constructedhypothetical. promotion instances, at least one promotional instance isselected and used as the basis for a promotion to a customer.

Specifically and in accordance with one embodiment, the promotion may beexecuted by (a) outputting promotion content to a customer via an outputdevice such as a touch screen, (b) determining the customer's responseto the promotion by receiving a signal from an input device such as atouch screen, and (c) recording sales data including (i) whether thecustomer accepted or rejected the promotion, and (ii) an updatedinventory count reflecting dispensed products. The recorded sales datais in turn used in subsequent promotion construction processes.

In some embodiments, the determination of whether a promotion isappropriate is made periodically or substantially continuously, so thatpromotional offers can be offered to prospective customers before atransaction is initiated (“proactive promotions”). In other embodiments,the determination of whether a promotion is appropriate is madefollowing the initiation of a transaction by a customer (“reactivepromotions”).

Thus, utilizing embodiments of the present invention, a vendingmachine's profit per fill period may be increased. Specifically, rulesfor determining available promotion types, constructing hypotheticalpromotion instances, and/or selecting a promotion from severalhypothetical promotion instances are designed to, in some embodiments,(i) increase sales volume/velocity while not undermining overall machineprofitability through “dilution” and/or “diversion” effects, and/or (ii)preserve an available coin inventory so that change can be provided toan increased number of customers during a fill period.

A. Terms

Throughout the description that follows and unless otherwise specified,the following terms may include and/or encompass the example meaningsprovided in this section. These terms and illustrative example meaningsare provided to clarify the language selected to describe embodiments ofthe invention both in the specification and in the appended claims.

The term “actual product velocity” may refer to an actual rate at whicha given product is sold by a vending machine during a period of time(e.g., during a sales period).

The term “baseline velocity demand” may refer to the total number ofproducts sold at retail price within a particular period of time (e.g.,during a particular sales period).

The term “coin conservation” may refer to the practice of managing theworking capital stored in a vending machine, such as by managing aninventory of coins or other currency so as to reserve or preserve aminimum amount that can be used to provide customers with change whenappropriate. In some embodiments, a vending machine can engage in coinconservation efforts by configuring and outputting one or morepromotions to a customer. For example, where a forecast based on currentsales patterns indicates that an insufficient number of coins remains inthe machine to make correct change for every anticipated transaction, avending machine control system may execute dynamically priced upsellpromotions (where customers are offered additional products for theirchange due), and thereby engage in coin conservation.

The term “control system” may refer to a combination of hardware andsoftware, operative to carry out methods of the present invention. Forexample, a control system may comprise a processor performinginstructions of a program.

The terms “customer device” and “user device” shall be synonymous andmay refer to any device owned or used by a customer, which device iscapable of accessing and/or outputting online and/or offline content.Customer devices may communicate with one or more vending machineservers, one or more vending machines, one or more third-party serviceprovider servers, one or more user terminals, and/or other networknodes. In some embodiments, customer devices may, for example, includegaming devices, personal computers, personal digital assistants,point-of-sale terminals, point of display terminals, kiosks, telephones,cellular phones, automated teller machines (ATMs), pagers, andcombinations of such devices.

The terms “dilution” and “price dilution” shall be synonymous and mayrefer to the negative effect on profitability that ensues when a productis sold for a price lower than a given customer otherwise would havepaid for the product. In some embodiments, the potential for dilution isfactored into stored rules for constructing promotion instances. Thus,in some embodiments, vending machines may be programmed to eliminate orreduce the effects of dilution by picking those promotion instances thatare less likely to result in dilution, or are more likely to result inless dilution.

The term “diversion” may refer to the negative effect on profitabilitythat ensues when a lower price or lower profit product is sold to acustomer instead of a higher price or higher profit product that thecustomer otherwise would have purchased. In some embodiments, thepotential for diversion is factored into stored rules for constructingpromotion instances. Thus, in some embodiments, vending machines may beprogrammed to eliminate or reduce the effects of diversion by pickingthose promotion instances that are less likely to result in diversion.

The terms “dynamically priced upsell promotion”, “dynamic priced upsellpromotion”, “roundup deal”, “roundup promotion”, and “spare-changeupsell promotion” shall be synonymous and may refer to a promotion to acustomer of a first product for the purchase of an additional product inexchange for an additional amount that is equal to an amount of changedue back to the customer as a result of the customer's purchase of thefirst product.

The terms “fill period” and “sales period” shall be synonymous and mayrefer to the period of time between restocking events at a vendingmachine.

The terms “fixed price upsell promotion” and “upsell promotion” shall besynonymous and may refer to a promotion to a customer of a first productfor the purchase of an additional product in exchange for an additionalamount that is not necessarily correlated with an amount of change dueback to the customer as a result of the customer's purchase of the firstproduct. In some embodiments, a customer who has purchased a firstproduct and is thereby due change may be required to deposit additionalcurrency in order to accept a fixed price upsell promotion. Thus, thefixed price upsell promotion may require that the customer pay an amountequal to his or her change due plus an additional amount of currency.

The terms “full price” and “retail price” shall by synonymous and mayrefer to the normal price charged for the purchase of a given product.Typically, promotions present customers with the opportunity to purchaseproducts at less than full price.

The terms “ideal product velocity”, “target product velocity”, and“target velocity” shall be synonymous and may refer to the desired rateat which a given product should be sold by a vending machine during aperiod of time (e.g., during a sales period). Thus, in some embodiments,an ideal velocity may beset or calculated for each product indicatingthe rate at which products must be sold in order to deplete theinventory to a certain level by the end of a given sales period (i.e.,by the next restocking event at the vending machine).

For example, an ideal product velocity may be calculated b a vendingmachine control system after an operator inputs a restock date and adesired remaining inventory for the date. For example, an operator maywish to have only one of each product remaining at the next restockingevent so that the vending machine sells as many products as possiblewithout completely selling out and thereby disappointing customers.Thus, in the preceding example, if an operator (a) stocks 50 units ofSoda A, (b) inputs a restock date fourteen days away, and (c) indicatesthat only one unit of Soda A should remain at the restock date, thecontrol system may divide 49 by 14 to conclude that, on average, 3.5units must be sold per day within the sales period in order to realizethe ideal product velocity.

As discussed herein, a vending machine or other device may periodically,substantially continuously, or otherwise determine whether or not actualproduct velocity is at least equal to the ideal product velocity, and ifnot, may institute promotions as discussed herein. An ideal productvelocity may be further set so that if such a velocity is reached, theincrease in volume will sufficiently offset any discounts afforded tocustomers through promotions, thereby eliminating or reducing thepotential for dilution.

The term “input device” may refer to a device that is used to receive aninput. An input device may communicate with or be part of another device(e.g. a point of sale terminal, a point of display terminal, a customerterminal, a server, a customer device, a vending machine, a controller,a peripheral device, etc.). Some examples of input devices include: abar-code scanner, a magnetic stripe reader, a computer keyboard, apoint-of-sale terminal keypad, a touch-screen, a microphone, an infraredsensor, a sonic ranger, a computer port, a video camera, a motiondetector, a digital camera, a network card, a universal serial bus (USB)port, a GPS receiver, a radio frequency identification (RFID) receiver,a RE receiver, a thermometer, a pressure sensor, and a weight scale.

The term “output device” may refer to a device that is used to outputinformation. An output device may communicate with or be part of anotherdevice (e.g. a vending machine, a point of sale terminal, a point ofdisplay terminal, a customer device, a controller, etc.). Possibleoutput devices include: a cathode ray tube (CRT) monitor, liquid crystaldisplay (LCD) screen, light emitting diode (LED) screen, a printer, anaudio speaker, an infra-red transmitter, and a radio transmitter.

The term “minimum selling price” may refer to the lowest price at whicha product may be sold. The minimum selling price may not necessarilyreflect the cost of the product to the operator of a vending machine.Thus, the minimum selling price may include an acceptable profit margin.Conversely, the minimum selling price may be set less than the cost of aproduct to the operator of a vending machine, as may be the case where apromotion or series of promotions would sufficiently offset any lossassociated with selling the particular product below cost.

The term “operator” may refer to the owner of a vending machine, oragent or associate thereof (e.g., a route driver or lessee of a vendingmachine).

The terms “package deal”, “combination deal”, “package promotion”,“combination promotion”, “combination product promotion”, “‘Load-up’deal”, “value combo deal”, and “combo deal” shall be synonymous and mayrefer to a promotion enabling a customer to purchase at least twoproducts for a single price. In one or more embodiments, packagepromotions are configured to result in a benefit (e.g., net-savings) tothe customer when compared to the sum of the individual componentproduct's retail prices.

The term “peripheral device” may refer to any device associated with oneor more vending machines, the peripheral device being operable toperform any of the functions described herein. For example, in oneembodiment a prior art vending may be retrofitted with a peripheraldevice that comprises a processor, memory, and output device forfacilitating promotions in accordance with embodiments of the presentinvention. A peripheral device may or may not be attached to a vendingmachine. A peripheral device mayor may not be operable to direct theassociated vending machine to perform certain functions. A peripheraldevice, or portions thereof, may be housed inside the casing of theassociated vending machine. Further, a peripheral device maybe operableto detect one or more events at a vending machine. For example, aperipheral device may be operable to detect one or more signals outputby a processor of a vending machine. Further still, a peripheral devicemay be operable to communicate with a processor of an associated vendingmachine.

The term “proactive promotion” may refer to a promotion provided to oneor more customers irrespective of customer action (e.g., promotionsoffered to customers independent of a first, triggering transaction).For example, a proactive promotion is the offering of a combinationproduct offer to all customers via an output device such as an LCDscreen. A proactive promotion may be output, for example, constantly,periodically, randomly and/or only when the presence of a customer isdetected at the vending machine.

The terms “product,” “good,” “item”, “merchandise,” and “service” shallbe synonymous and may refer to anything licensed, leased, sold,available for sale, available for lease, available for licensing, and/oroffered or presented for sale, lease, or licensing including individualproducts, packages of products, subscriptions to products, contracts,information, services, and intangibles. Examples of goods sold atvending machines include beverages (e.g. cans of soda) and snacks (e.g.candy bars). Examples of services sold by vending machines include carwashes, photography services and access to digital content (e.g.permitting the downloading of MP3 files or “ring tunes” to a handhelddevice).

The term “profit inventory management” or “PIM” may refer to thepractice of managing the sale of products so as to increase a vendingmachine's profitability during a period of time (e.g., during a salesperiod). In some embodiments, a vending machine is programmed toevaluate sales data in light of stored rules indicative of a profitgoal. For example, stored rules may indicate an ideal product velocitythat would tend to increase the machine's profitability. The machine maydetermine that, based on current sales data, the ideal product velocity(for a given product or group of products) will not be achieved based oncurrent promotions, prices, or other sales parameters. In response, thevending machine may execute multi-variant equations to identify,construct and offer a promotion to a customer with the goal of achievingthe ideal product velocity (for a given product or group of products).

The term “promotion instance” may refer to an instance of a potential orhypothetical promotion that may be output (e.g., to a particularcustomer). A promotion instance may be constructed and compared to otherpotential or hypothetical promotion instances for the purpose ofdetermining which one or more promotions will be presented to a customerfor acceptance. In one or more embodiments, promotion instances areconstructed by populating promotion types with data representinginventory in a vending machine.

The term “promotion type” may refer to the form, format or category of apromotion, as distinguished from the products and/or prices that may beincluded in a promotion. For example, the form of an promotion may be a“dynamically priced upsell”, meaning that a particular product will beoffered to a customer in exchange for the customer's change due from afirst, triggering transaction. Thus, one dynamically priced upsellpromotion may include Product A, whereas another such pro n may includeProduct B, but both promotions may be of the “dynamically priced upsell”promotion type.

The term “promotion” may refer to a message that is output, regardingsome product, distinct from a general offer to sell products from avending machine at retail prices. For example, a promotion may comprisea message intended to increase machine profitability. Typically, apromotion allows customers to purchase one or more products under termsthat are generally more favorable to the customer than standard retailterms (e.g., at prices less than or equal to the corresponding product'sfull price(s), but greater than or equal to the corresponding product'sminimum prices)).

The term “reactive promotion” may refer to a promotion that is offeredto a customer in response to a customer action, such as the purchase ofa product or a request for a promotion. Examples of reactive promotionsinclude dynamically priced upsell offers and fixed-price upsell offers.

The terms “restock date”, “restock time”, “restock event” and “pick-up”shall be synonymous and may refer to the time and/or date that a vendingmachine is scheduled to be restocked by an operator of a vendingmachine.

The terms “server” and “controller” shall be synonymous and may refer toany device that may communicate with one or more vending machines, oneor more third-party servers, one or more remote controllers, one or morecustomer devices, one or more peripheral devices and/or other networknodes, and may be capable of relaying communications to and from each.

The terms “target profit” and “ideal profit” may be used interchangeablyand may refer to a desired profit to be achieved by a vending machine orgroup of vending machines. In some embodiments, the profit goal set byan operator of a vending machine.

The scope of the present invention and embodiments thereof may beunderstood more fully with reference to the following figures.Embodiments of the present invention are first described by means ofblock diagrams illustrating exemplary system infrastructure and devicesthat may be utilized by an entity practicing the present invention.Exemplary data structures illustrating tables that maybe used whenpracticing embodiments of the present invention are then described,followed by schematic diagrams of exemplary software architecturedesigned to implement some embodiments of the present invention.Finally, flow diagrams that illustrate exemplary processes consistentwith some embodiments of the present invention are described.

B. Systems and Apparatus

Generally, a vending machine in accordance with the present inventionmay comprise a device, or communicate with a device (e.g., a server, aperipheral device, and/or a peripheral device server), configured tomanage sales transactions with customers by, among other things,receiving payment from customers, controlling the pricing and/ordistribution of goods and/or controlling entitlements to services.

Referring now to FIG. 1, illustrated therein is a block diagram of anembodiment of a system consistent with the present invention. Morespecifically, FIG. 1 is a block diagram of a vending machine 100 thatmay be operable to perform one or more functions described herein.

The vending machine 100 may include a processor 105, such as one or moreIntel® Pentium® processors. The processor 105 may include or be coupledto one or more clocks or timers (not pictured) and one or morecommunication ports 165 through which the processor 105 may communicate,in accordance with some embodiments, with other devices such as one ormore peripheral devices, one or more servers, one or more peripheraldevices, and/or one or more user devices. The processor 105 is also incommunication with a data storage device 110. The data storage device110 may include any appropriate combination of magnetic, optical and/orsemiconductor memory, and may include, for example, additionalprocessors, communication ports, Random Access Memory (“RAM”), Read-OnlyMemory (“ROM”), a compact disc and/or a hard disk. The processor 105 andthe storage device 110 may each be, for example: (i) located entirelywithin a single computer or other computing device; or: (ii) connectedto each other by a remote communication medium, such as a serial portcable, a LAN, a telephone line, radio frequency transceiver, a fiberoptic connection or the like. In some embodiments for example, thevending machine 100 may comprise one or more computers (or processors105) that are connected to a remote server computer operative tomaintain databases, where the data storage device 110 is comprised ofthe combination of the remote server computer and the associateddatabases.

The data storage device 110 stores a program 115 for controlling theprocessor 105. The processor 105 performs instructions of the program115, and thereby operates in accordance with the present invention, andparticularly in accordance with the methods described in detail herein.The present invention may be embodied as a computer program 115developed using an object oriented language that allows the modeling ofcomplex systems with modular objects to create abstractions that arerepresentative of real world, physical objects and theirinterrelationships. However, it would be understood by one of ordinaryskill in the art that the invention as described herein can beimplemented in many different ways using a wide range of programmingtechniques as well as general purpose hardware systems or dedicatedcontrollers.

The program 115 may be stored in a compressed, uncompiled and/orencrypted format. The program 115 furthermore may include programelements that may be generally useful, such as an operating system, adatabase management system and device drivers for allowing the processor105 to interface with computer peripheral devices. Appropriate generalpurpose program elements are known to those skilled in the art, and neednot be described in detail herein.

Further, the program 115 is operative to execute a number ofinvention-specific, objects, modules and/or subroutines which mayinclude (but are not limited to) one or more subroutines to determinewhether a promotion should be output; one or more subroutines todetermine a promotion type; one or more subroutines to populate apromotion type, thereby constructing a promotion instance; one or moresubroutines to select a constructed promotion instance from a pluralityof hypothetical promotion instances; and/or one or more subroutines todetermine an expected value of a promotion being considered for output.Examples of some of these subroutines and their operation are describedin detail below in conjunction with the flowcharts depicted in FIGS. 13through 16.

According to some embodiments of the present invention, the instructionsof the program 115 may be read into a main memory of the processor 105from another computer-readable medium, such from a ROM to a RAM.Execution of sequences of the instructions in the program 115 causesprocessor 105 to perform the process steps described herein. Inalternative embodiments, hard-wired circuitry or integrated circuits maybe used in place of, or in combination with, software instructions forimplementation of the processes of the present invention. Thus,embodiments of the present invention are not limited to any specificcombination of hardware, firmware, and/or software.

In addition to the program 115, the storage device 110 is also operativeto store one or more databases, such as (i) an product inventorydatabase 120, (ii) a coin inventory database 125, (iii) a transactionhistory database 130, (iv) a promotion history database 135, (v) anavailable promotions database 140, and (vi) one or more rules database145. The databases 120, 125, 130, 135, 140 and 145 are described indetail below and example structures are depicted with sample entries inthe accompanying figures. As will be understood by those skilled in theart, the schematic illustrations and accompanying descriptions of thesample databases presented herein are exemplary arrangements for storedrepresentations of information. Any number of other arrangements may beemployed besides those suggested by the tables shown. For example, eventhough six separate databases are illustrated, the invention could bepracticed effectively using one, two, three, four, five, seven or morefunctionally equivalent databases.

Similarly, the illustrated entries of the databases represent exemplaryinformation only; those skilled in the art will understand that thenumber and content of the entries can be different from thoseillustrated herein.

Further, despite the depiction of the databases as tables, anobject-based model could be used to store and manipulate the data typesof the present invention and likewise, object methods or behaviors canbe used to implement the processes of the present invention. Examples ofsome of these processes are described below in detail with respect toFIGS. 13 through 16.

It should be noted that the term “computer-readable medium” as usedherein refers to any medium that participates in providing instructionsto a processor for execution. Such a medium may take many forms,including but not limited to, non-volatile media, volatile media, andtransmission media. Non-volatile media include, for example, optical ormagnetic disks, such as memory. Volatile media include dynamic randomaccess memory (DRAM), which typically constitutes the main memory.Transmission media include coaxial cables, copper wire fiber optics,including the wires that comprise a system bus coupled to the processor.Transmission media may carry acoustic or light waves, such as thosegenerated during radio frequency (RF) and infrared (IR) datacommunications. Common forms of computer-readable media include, forexample, a floppy disk, a flexible disk, hard disk, magnetic tape, anyother magnetic medium, a CD-ROM, DVD, any other optical medium, punchcards, paper tape, any other physical medium with patterns of holes, aRAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip orcartridge, a carrier wave as described hereinafter, or any other mediumfrom which a computer can read. Various forms of computer readable mediamay be involved in carrying one or more sequences of one or moreinstructions to a processor for execution.

Vending machine 100 may comprise payment processing mechanism(s) 150.The payment processing mechanism(s) 150 may comprise one or moremechanisms for receiving payment and dispensing change, including a coinacceptor, a bill validator, a card reader (e.g. a magnetic stripereader) and a change dispenser.

In a manner known in the art, a magnetic stripe card reader may readdata on the magnetic stripe of a credit or debit card, and it maycooperate with conventional point-of-sale credit card pressing equipmentto validate card-based purchases through a conventional transactionauthorization network. Suitable card-based transaction processingsystems and methods are available from USA Technologies, Inc.™ of Wayne,Pa.

The coin acceptor, bill validator and change dispenser may communicatewith a currency storage apparatus (a “hopper”; not shown) and maycomprise conventional devices such as models AE-2400, MC5000, TRC200 byMars, Inc.™ of West Chester, Pa., or CoinCo™ model 9300-L.

The coin acceptor and bill validator may receive and validate currencythat is stored by the currency storage apparatus. Further, a billvalidator or coin acceptor may be capable of monitoring stored currencyand maintaining a running total of the stored currency, as is discussedwith reference to U.S. Pat. No. 4,587,984, entitled COIN TUBE MONITORMEANS, the entirety of which is incorporated by reference herein for allpurposes. The change dispenser activates the return of coinage to thecustomer where appropriate (e.g. where a customer rejects or otherwisefails to accept a dynamically priced upsell offer). Such apparatus mayfeature Multidrop Bus (MDB) and/or Micromech peripheral capabilities, asis known in the art.

In another embodiment, a vending machine in accordance with the presentinvention may be configured to receive payment authorization and productselection commands through a wireless device communication network,directly or indirectly, from a customer device (e.g. a cellulartelephone). In such an embodiment, a payment processing mechanism maycomprise a cellular transceiver operatively connected to a processor, asdescribed herein. Systems and methods allowing for the selection of andpayment for vending machine articles through cellular telephones areprovided by USA Technologies, Inc.™. Further, in such an embodiment, acustomer cellular telephone may serve as an input/output device, asdescribed herein.

Further details concerning vending machine payment processing mechanismsare well known in the art, and need not be described in further detailherein.

The vending machine 100 may her comprise an output device 155 and aninput device 160. It should be understood that, although only a singleoutput device 155 and a single input device 160 is illustrated in FIG.1, any number of output devices and/or input devices may be used.

In accordance with embodiments of the presenting invention, a vendingmachine may include an input device for receiving input a (i) a customerindicating a product and/or offer selection, and/or (ii) an operator (oragent thereof) during stocking or maintenance of the vending machine.Also, a vending machine may include one or more output devices foroutputting product and/or promotion information to a customer oroperator.

Many combinations of input and output devices may be employed inaccordance with embodiments of the present invention. For example, inembodiments which feature touch screens (described herein), input andoutput functionality may be provided by a single device.

As described, a vending machine may include more than one input device.For example, a vending machine may include an exterior input device forreceiving customer input and an interior input device for receivingoperator input. In some embodiments, however, the input device providesthe dual functionality of receiving input data from both operators andcustomers.

As also described, a vending machine may comprise more than one outputdevice. For example, a vending machine may include both an LiquidCrystal Display (LCD) screen and several Light Emitting Diodes (LEDs).

Output device 155 may comprise, for example, an LCD and/or one or moreLEDs displays (e.g., several alphanumeric LEDs on the shelves of avending machine, each LED being associated with a row of productinventory).

In one embodiment, an LED display screen may be mounted atop a vendingmachine (e.g., attached thereto, such as via bolts or other mountinghardware). Such a mounted LED display screen and may be used tocommunicate promotions and other messages (e.g., product advertisements)to prospective customers. A suitable LED display screen for such anembodiment may be housed in an aluminum case having a length of 27.5″, aheight of 4.25″, and a depth of 1.75″. Such a display screen may have adisplay area capable of showing 13 alphanumeric and/or graphicalcharacters. Further, such an LED display screen may comprise a serialcomputer interface, such as an RJ45/RS232 connector, for communicating aprocessor, as described herein. Further still, such an LED display maybe capable of outputting text and graphics in several colors (e.g., red,yellow, green, black) regarding current and upcoming promotions.

Further, in some embodiments, a output device comprises a printer. Inone embodiment, a printer is configured to print on card stock paper(e.g. 0.06 mm to 0.15 mm thickness), such as the EPSON EU-T400 SeriesKiosk Printer. Further, a printer may be capable of thermal lineprinting of various alphanumeric and graphical symbols in various fontsizes (e.g. raging from 9 to 24 point) on various types of paper.Additionally, such a printer may communicate with a processor (describedherein) via an RS232/IEEE 12834 and/or bi-directional parallelconnection. Such a printer may further comprise a 4 KB data buffer.

Additionally, in some embodiments, an output device comprises an audiomodule, such as an audio speaker, that outputs information to customersaudibly.

Input device 160 may comprise one or more of (1) a set of alpha-numerickeys for providing input to the vending machine, such as theProgrammable Master Menu® Keypad, (2) a selector dial, (3) a set ofbuttons associated with a respective set of item dispensers, (4) amotion sensor, (5) a barcode reader, (6) a voice recognition module, (7)a Dual-Tone Multi-Frequency receiver/decoder, (8) a wireless device(e.g. a cellular telephone or wireless Personal Digital Assistant),and/or (9) any other conventional input device commonly employed by avending machine designer.

As described, in some embodiments, a touch-sensitive screen may beemployed to perform both input and output functions. Suitable,commercially available touch screens for use in accordance with thepresent invention are manufactured by Elo TouchSystems, Inc.™, ofFremont, Calif., such as Elo's AccuTouch™ series touch screens. Suchtouch screens may comprise: (i) a first (e.g., outer-most) hard-surfacescreen layer coated with an anti-glare finish, (ii) a second screenlayer coated with a transparent-conductive coating, (iii) a third screenlayer comprising a glass substrate with a uniform-conductive coating.Further, such touch screens may be configured to detect input within adetermined positional accuracy, such as a standard deviation of errorless than±0.080-inch (2 mm). The sensitivity resolution of such touchscreens may be more than 100,000 touchpoints/in² (15,500touchpoints/cm²) for a 13-inch touch screen. For such touch screens, thetouch activation force required to trigger an input signal to theprocessor (described herein) via the touch screen is typically 2 to 4ounces (57 to 113 g). Additionally, touch screens for use in accordancewith embodiments of the present invention may be resistant toenvironmental stressors such as water, humidity, chemicals,electrostatic energy, and the like. These and other operational detailsof touch screens (e.g., drive current, signal current, capacitance, opencircuit resistance, closed circuit resistance, etc.) are well known inthe art and need not be described further herein.

Vending machine 100 may further comprise one or more inventory storageand dispensing mechanism(s) 170. Product inventory storage and productdispensing functions of a vending machine configured in accordance witha snack machine embodiment of the present invention may include one ormore of: (i) a drive motor, (ii) metal shelves, (iii) a product deliverysystem (e.g. a chute, product tray, product tray door, etc.), (iv) dualspiral (i.e. double helix) item dispensing rods, (v) convertible (i.e.extendable) shelves, and/or (vi) a refrigeration unit.

In some embodiments, as described below with respect to FIG. 3, avending machine may be housed in a casing of the model 129 SnackShopmanufactured by Automatic Products™. In such embodiments, 3 removableshelves may be employed, together providing for 30 product rows and aninventory capacity of between 185 to 522 commonly vended snack products.

Inventory storage and dispensing mechanism(s) 170 may comprise one ormore of: (i) metal and/or plastic shelving, (ii) item dispensingactuators/motors, (iii) product delivery chutes, and/or (iv) arefrigeration unit. Further details concerning vending machine inventorystorage and dispensing mechanisms are well known in the art, and neednot be described in further detail herein.

Referring now to FIG. 2A, a block diagram of a system 200 according toat least one embodiment of the present invention includes a controller205 that is in communication, via a communications network 210, with oneor more vending machines 215. The controller 205 may communicate withthe vending machines 215 directly or indirectly, via a wired or wirelessmedium such as the Internet, LAN, WAN or Ethernet, Token Ring, or viaany appropriate communications means or combination of communicationsmeans. Each of the vending machines 215 may comprise computers, such asthose based on the Intel® Pentium® processor, that are adapted tocommunicate with the controller 205. Any number and type of vendingmachines 215 may be in communication with the controller 205.

Communication between the vending machines 215 and the controller 205,and among the vending machines 215 (which communicate via communicationnetwork 220), may be direct or indirect, such as over the Internetthrough a Web site maintained by controller 205 on a remote server orover an on-line data network including commercial on-line serviceproviders, bulletin board systems and the like. In yet otherembodiments, the vending machines 215 may communicate with one anotherand/or controller 205 over RF, cable TV, satellite links and the like.

Some, but not all, possible communication networks that may comprisenetwork 210 and/or network 220 or be otherwise part of system 200include; a local area network (LAN), a wide area network (WAN), theInternet, a telephone line, a cable line, a radio channel, an opticalcommunications line, a satellite communications link. Possiblecommunications protocols that may be part of system 200 include:Ethernet (or IEEE 802.3), SAP, ATP, Bluetooth™, and TCP/IP.Communication may be encrypted to ensure privacy and prevent fraud inany of a variety of ways well known in the art.

Those skilled in the art will understand that devices in communicationwith each other need not be continually transmitting to each other. Onthe contrary, such devices need only transmit to each other asnecessary, and may actually refrain from exchanging data most of thetime. For example, a device in communication with another device via theInternet may not transmit data to the other device for weeks at a time.

In an embodiment, the controller 205 may not be necessary and/orpreferred. For example, the present invention may, in one or moreembodiments, be practiced on a stand-alone vending machine 100 and/or avending machine 100 in communication only with one or more other vendingmachines 100. In such an embodiment, any functions described asperformed by the controller 205 or data described as stored on thecontroller 205 may instead be performed by or stored on one or morevending machines 100.

It should be noted that, in the embodiment of FIG. 2, some of thefunctionality described with reference to FIG. 1 as being performed byvending machine 100 may instead or in addition be performed bycontroller 205. For example, controller 205 may determine a promotiontype to be used as the basis for construction of a promotion instanceand/or may construct a promotion instance. Similarly, any data describedwith reference to FIG. 1 as being stored in a memory of vending machine100 may, in the embodiment of FIG. 2, be instead or in addition storedin a memory of controller 205. For example, data associated with pasttransactions completed at a vending machine 100 may be stored in amemory of controller 205.

It should further be noted that controller 205 may comprise one or morecomputing devices (e.g., working in cooperation with one another) thatmay or may not be located remotely to one another or remotely to one ormore of the vending machines 100.

Referring now to FIG. 2B, a block diagram of another system 250according to at least one embodiment of the present invention includes acontroller 205 that is in communication, via a communications network210, with one or more vending machines 100. A difference between system200 (FIG. 2A) and system 250 (FIG. 2B) is that in system 250 at leastone vending machine 100 is also in communication with one or moreperipheral devices 255 (defined above). A peripheral device 255 may, inturn, be in communication with a peripheral device controller 260 (viacommunication network 275). In some embodiments, a peripheral device 255may also or instead be in communication with controller 205 (viacommunication network 290), one or more vending machines 100 (viacommunication network 265) and/or one or more user devices (not shown).In one or more embodiments the peripheral device controller 260 may bein communication with one or more vending machines 100 (viacommunication network 280) and/or controller 205 (via communicationnetwork 285).

Any of the controller 205, the vending machines 100, the peripheraldevices 255 and/or the peripheral device server 260 may communicate withone another directly or indirectly, via a wired or wireless medium suchas the Internet, LAN, WAN or Ethernet, Token Ring, or via anyappropriate communications means or combination of communications means.For example, the controller 205 may communicate directly with one of thevending machines 100 (e.g. via a LAN) and indirectly (e.g., via avending machines 100) with a peripheral device 255. In another example,the controller 205 may communicate with one of the vending machines 100via a LAN and with another of the vending machines 100 via the Internet.

Any and all of the controller 205, the vending machines 100, theperipheral devices 255 and the peripheral device controller 260 maycomprise computers, such as those based on the Intel® Pentium®processor. Further, in one or more embodiments, each of the peripheraldevices 255 may comprise an external or internal module associated withone or more of the vending machines 100 that is capable of communicatingwith one or more of the vending machines 100 and of directing the one ormore vending machines 100 to perform one or more functions.

Any number of vending machines 100 may be in communication with thecontroller 205. Any number and type of peripheral devices 255 may be incommunication with a vending machine 100, peripheral device controller260 and controller 205.

Communication between any of the controller 205, the vending machines100, the peripheral devices 255 and the peripheral device controller260, among the vending machines 100 and among the peripheral devices 255may be direct or indirect, such as over the Internet through a Web sitemaintained by controller 205 on a remote server or over an on-line datanetwork including commercial on-line service providers, bulletin boardsystems and the like. in yet other embodiments, any and all ofcontroller 205, the vending machines 100, the peripheral devices 255 andthe peripheral device controller 260 may communicate with one anotherover RF, cable TV, satellite links and the like.

Some, but not all, possible communication networks that may comprise anyor all of the network 210, 220, 265, 270, 275, 280, 285 and 290, or thatotherwise may be part of system 250 include: a local area network (LAN),a wide area network (WAN), the Internet, a telephone line, a cable line,a radio channel, an optical communications line, a satellitecommunications link. Possible communications protocols that may be partof system 250 include: Ethernet (or IEEE 802.3), SAP, ATP, Bluetooth™,and TCP/IP. Communication may be encrypted to ensure privacy and preventfraud in any of a variety of ways well known in the art.

In an embodiment, the controller 205 may not be necessary and/orpreferred. For example, the present invention may, in one or moreembodiments, be practiced on a stand-alone vending machine 100, one ormore vending machines 100 in communication with one or more peripheraldevices 255 (as illustrated in FIG. 2C), one or more vending machines100 in communication with peripheral device controller 260, one or moreperipheral devices 255 in communication with peripheral devicecontroller 260, and/or a vending machine 100 in communication only withone or more other vending machines 100. In such embodiments, anyfunctions described as performed by a particular device (e.g., by avending machine 100) or data described as stored in a memory of aparticular device (e.g., in a memory of a vending machine 100) mayinstead or in addition be performed by or stored in another of thedevices described herein (e.g., a peripheral device 255).

Similarly, peripheral device controller 260 may not be desired and/orneeded in some embodiments of the present invention. in embodiments thatdo not involve peripheral device controller 260, any or all of thefunctions described herein as being performed by peripheral devicecontroller 260 may instead be performed by controller 205, one or morevending machines 100, one or more peripheral devices 255, or acombination thereof. Similarly, in embodiments that do not involveperipheral device controller 260 any data described herein as beingstored in a memory of peripheral device controller 260 may instead bestored in a memory of controller 205, one or more vending machines 100,one or more peripheral devices 255, or a combination thereof.

Any or all of the vending machines 100 may, respectively, include or bein communication with a peripheral device 255. A peripheral device 255may be a device that obtains (e.g., receives or reads) information from(and/or transmits information to) one or more vending machines 100. Forexample, a peripheral device 255 may be operable to obtain informationabout transactions being conducted at a vending machine 100, such as theinitiation of a transaction, an amount of money deposited for atransaction and/or a product selected during a transaction. For example,a peripheral device 255 may monitor activities carried out by aprocessor of a vending machine 100.

In one or more embodiments, one or more such peripheral devices 255 maybe in communication with a peripheral device controller 260. This allowsthe peripheral device controller 260 to receive information regarding aplurality of transactions conducted at a plurality of vending machines100. The peripheral device controller 260, in turn, may be incommunication with the controller 205. It should be understood that anyfunctions described herein as performed by a peripheral device 255 mayalso or instead be performed by the peripheral device controller 260.Similarly, any data described herein as being stored on or accessed by aperipheral device 255 may also or instead be stored on or accessed bythe peripheral device controller 260.

A peripheral device 255 may be operable to access one or more databases(e.g., of peripheral device controller 260 or of the peripheral device255 or a combination thereof) to determine a promotion type based on,for example, an one or more transactions initiated and/or completed at avending machine 100. A peripheral device 255 may also be operable toaccess one or more databases (e.g. a product inventory database and/or atransaction history database, each of which is described in detailbelow) to construct a promotion instance.

The peripheral device controller 260 may also monitor promotions outputto customers of vending machines 100 over time to determine acceptancerates for various promotions. For example, in embodiments wherein acustomer is presented with a promotion at a vending machine 100 andresponds thereto by providing an acceptance or rejection of thepromotion via an input device of the vending machine 100 or an inputdevice of a peripheral device 255, the peripheral device controller 260may track which promotions are accepted by customers and subsequentlyuse that information to present other promotions to a customer and/or toconstruct promotion instances. Further, information about a transactionobtained or accessed by peripheral device controller 260 may beanalyzed, e.g. to identify the circumstances under which a promotiontype is most likely to be accepted by a customer. Based upon desiredobjectives, the peripheral device controller 260 may direct theappropriate peripheral device 255 to output customized promotions to acustomer of a vending machine based on the circumstances of atransaction initiated by the customer.

Information received by a peripheral device 255 from a vending machine100 may include inventory data such as an actual rate at which aparticular product is selling, a number of transactions per unit oftime, a coin inventory, a product inventory and/or a selection of aproduct by a customer currently conducting a transaction at the vendingmachine.

An example of a peripheral device that may comprise a peripheral device255 is the e-Port™ by USA Technologies Inc. The e-Port™ is a credit andsmart card-accepting unit that controls access to office and MDB vendingequipment, and serves as a point of purchase credit card transactiondevice. The e-Port™ includes an LCD) that allows for the display ofcolor graphics, and a touch sensitive input device (touch screen) thatallows users to input data to the device. The display may be used toprompt users interactively with, e.g., promotions and information abouttheir transaction status.

A peripheral device 255 may be operable to receive input from customers,receive payment from customers, exchange information with a remotelylocated server (e.g., controller 205 and/or peripheral device controller260) and/or display messages to customers (e.g., promotion content). Aperipheral device 255 may be operable to instruct a vending machine 100that appropriate payment has been received (e.g., via a credit card readby the separate device) and/or that a particular product should bedispensed by the vending machine. Further, a peripheral device 255 maybe operable to instruct the vending machine to execute promotions orprice changes.

The functions described herein as being performed by a peripheral devicecontroller 260 and/or a peripheral device 255 may, in one or moreembodiments, be performed by the controller 205 (in lieu of or inconjunction with being performed by a peripheral device controller 260and/or a peripheral device 255). Such functions may be performed bycontroller 205 in either system 200 (FIG. 2A) or system 250 (FIG. 2B).

In one or more embodiments, a peripheral device 255 may be useful forimplementing the embodiments of the present invention into the operationof a conventional vending machine. For example, in order to avoid orminimize the necessity of modifying or replacing a program alreadystored in a memory of a conventional vending machine, an external orinternal module that comprises a peripheral device 255 may be insertedin or associated with the vending machine. For example, a conventionalvending machine may be retrofitted with a peripheral device 255 in orderto implement one or more embodiments of the present invention.

A peripheral device 255 may include (i) a communications port (e.g., forcommunicating with one or more vending machines 100, peripheral devicecontroller 260, another peripheral device 255, and/or controller 205);(ii) a display (e.g., for graphics and/or text associated with apromotion), (iii) another output means (e.g., a speaker and/or light tocommunicate with a customer), and/or (iv) a benefit providing means(e.g., a printer and paper dispensing means).

In one or more embodiments, the peripheral device 255 may direct avending machine to perform certain functions. For example, a programstored in a memory of peripheral device 255 may cause a processor of avending machine 100 to perform certain functions. For example, a programstored in a memory of peripheral device 255 may cause a processor of avending machine to dispense one or more products, dispense a monetaryamount, refrain from dispensing a monetary amount, refrain fromoutputting a product, and/or communicate with another device.

Note that, in one or more embodiments, a vending machine 100 and aperipheral device 255 that is associated with the vending machine 100may not communicate with one another at all. In some embodiments,however, each may communicate with a computer or other device. Forexample, a vending machine 100 may communicate with controller 205 andan associated peripheral device 255 may communicate with peripheraldevice controller 260 and/or controller 205. For example, if bothvending machine 100 and peripheral device 255 are in communication withcontroller 205, each may obtain information associated with the otherthrough controller 205.

It should be noted that in either the system 200 (FIG. 2A) or the system250 (FIG. 2B), the controller 205 and/or the peripheral devicecontroller 260 may be accessible, directly or indirectly, via anothercomputer (communicating, e.g., over the Internet or other network) by acustomer or another entity. Accordingly, a customer or other entity(e.g., an owner of the vending machine) of the other computer couldcommunicate with the controller 265 and or peripheral device controller260 via a Web browser. The other computer could, e.g., receive from thecontroller 205 and/or peripheral device controller 260 messages (e.g.,promotions) described herein as being output by the vending machine orperipheral device, and/or transmit to the controller 205 and/orperipheral device controller 260 input described herein as beingprovided to the vending machine. Similarly, various data describedherein as received through an input device of a vending machine 100and/or peripheral device 255 may be received through a Web browsercommunicating with the controller 205 and/or peripheral devicecontroller 260, which in turn communicates with the vending machine 100.Thus, an owner/operator of the vending machine may have remote pollingand reporting capabilities, may be able to transmit new business rulesto the vending machine 100, and the like.

Referring now to FIG. 2C, a block diagram of another system 295according to at least one embodiment of the present invention includes avending machine 100 that is in communication with a peripheral device255. As described above, a prior art vending machine 100 may beretrofitted with a peripheral device 255. The peripheral device 255 maybe operable to perform at least some of the methods of the presentinvention and/or to direct the vending machine 100 to perform at leastsome of the methods of the present invention, without requiring acontroller 205 and/or a peripheral device controller 260. In one or moreembodiments, the vending machine 100 and/or the peripheral device 255may be accessible from a remote location via a communication port.

Referring now to FIG. 3, a diagram of an embodiment 300 of the externalappearance of an exemplary vending machine 106 is illustrated. Theembodiment 300 includes (i) a cabinet 305, (ii) an output device 310 foroutputting text and/or graphical information about promotions to acustomer, (iii) a payment processing mechanism 315, (iv) an inventorydispensing mechanism 320, and (iv) a product display window 325 behindwhich are visible the products available for sale from the vendingmachine and the product storage mechanism that holds the products withinthe vending machine.

Cabinet 305 may be constructed from, for example, any combination of (1)commercial grade (i.e., sixteen-gauge) steel (e.g., for exterior panelsand internal shelving), (2) transparent materials such as glass orPlexiglas (e.g., for product display window 325), (3) rubber (e.g., forwaterproofing insulation), (4) plastic, (5) aluminum, and/or (6) anysuitable material.

Many commercially available machine cabinets can be modified to work inaccordance with the present invention. For example, in snack machineembodiments, a suitable machine casing may comprise the 129 SnackShop™manufactured by Automatic Products International, Ltd.™ of Saint Paul,Minn., which stands at 72″/1829 mm wide, has a width of 38⅞″/988 mm, anda depth of 35″/889 mm. Other suitable snack machine casings include theA La Carte™ machine from Automatic Products™, and the GPL SnackVendor™model # 159 from Crane Merchandising Systems/Crane Co.™ of Stamford,Conn.

In beverage machine embodiments, machine cabinets commercially availablefrom Dixie Narco™, Inc. of Williston, S.C. may be employed. Beveragemachine cabinets may comprise a “cooler” or “glass front” style frontpanel, featuring a transparent front panel (e.g. glass) enablingcustomers to see inventory for sale. Alternatively, beverage machinecasings may comprise a “bubble front” or “stack front” style frontpanel, featuring a decorative front panel, typically used to advertise alogo of a product manufacturer commercially interested in the vendingmachine's operation.

Other embodiments are contemplated as well, including combination snackand beverage vending machine embodiments, such as those available fromCrain Co.™. Further details concerning the suitability of machinecasing/cabinetry are well known in the art, and need not be described infurther detail herein.

It should be noted that payment processing mechanism 315 may compriseany or all of the components described with reference to paymentprocessing mechanism 150 (FIG. 1). Similarly, product dispensingmechanism 320 may comprise any or all of the components suitable fordispensing products described above with reference to inventory storageand dispensing mechanism 170 (FIG. 1).

C. Software Architecture

In one embodiment, a control system executes instructions for managingthe operation of the vending machine, and in particular in accordancewith the inventive functionality described herein. Such vending machinefunctions include, but are not limited to: (1) product pricing (e.g.,displaying prices via an LED, changing such prices where appropriate,etc.), (2) processing vending transactions by (i) receiving customerselections via an input device, (ii) processing payment via a paymentprocessing mechanism, and (iii) actuating corresponding productdispensing mechanisms, (3) selecting promotions or promotion types andconstructing promotion instances, (4) outputting promotions to customersvia output devices (including display of graphics/content on LCD and LEDdisplays), and (5) recording transaction information (inventory levels,acceptance rates for promotions, etc.).

In some embodiments, machine components (e.g., machine hardware,including mechanical hardware such as input devices, output devices,product dispensing mechanisms, and payment processing mechanismsincluding coin acceptors, bill validators, card readers, changedispensers, etc.) may be controlled by the control system through astandard RS-232 serial interface. In such embodiments, embeddedAPI/devices may be used to enable software to actuate/control vendingmachine components via RS-232 connectivity. Such vending machinecomponents may be operatively connected to the control system directlyor indirectly, in any manner that is practicable. Alternatively, machinecomponents may communicate with the control system through a UniversalSerial Bus “USB” standard (e.g., USB ports may allow “plug-and-play”installation of machine components).

Referring now to FIG. 4, a diagram illustrates an embodiment 400 of anexemplary portion of control software that may be utilized to implementembodiments of the present invention. The embodiment 400 illustrates thecontrol software as being divided into three abstract components. Suchdivision may provide a clear partition of tasks, which may be desirableso that any future modification and new programming can be appliedwithout disrupting other components. The three abstract componentsillustrated include a Business Logic software component 405, a ControlLayer software component 415, and an exemplary Machine Componentssoftware component 425. As stated earlier, more machine components maybe employed in addition to the exemplary one illustrated herein.

The software components are each connected to one another via arespective application program interface (API). As is known in the art,an API comprises a set of routines, protocols, and tools for buildingsoftware applications. The Business Logic software component 405 isconnected to Control Layer software component 415 via API 410. TheControl Layer software component 415 is connected to Machine Componentsoftware component 425 via API 420.

The Business Logic software component 405 visually represents theportion of the software that selects promotions or promotion typesinstances and/or constructs promotion instances, as discussed herein.Such a component may, for example, access a rules database and a productinventory database to perform such functions.

The Control Layer software component 415 visually represents the portionof the software which interfaces with at least one Machine Componentsoftware component 425, and thereby transmits commands to perform suchfunctions as: (i) outputting promotion information via an output device(i.e., a machine component), (ii) dispensing products via a productdispensing mechanism (i.e., a machine component), and/or (ill)dispensing change due to a customer via a payment processing mechanism,which may include a change dispenser and a currency storage apparatus(i.e., several machine components).

The Machine Component software component 425 generally representssoftware of machine hardware, including mechanical hardware such asinput devices, output devices, inventory dispensing mechanisms, andpayment processing mechanisms including coin acceptors, bill validators,card readers, change dispensers, etc.

Referring now to FIG. 5A, illustrated therein is schematic block diagramof an embodiment 500 of exemplary software architecture, consistent withone or more embodiments of the present invention. It should be noted,however, that many architectural configurations are possible to carryout the inventive processes described herein. The architecture ofembodiment 500 is a model of a software application for use in thepresent invention, designed using Unified Modeling Languages™ (UML). Themodel comprises various software components 502 through 540 andillustrates how the various software components may interact with oneanother.

The audit manager 502 listens for audit events fired by other managementcomponents and acts on them by persisting meaningful state about theevent to audit data structures. This function journals all significantevents, transactions, and other meaningful system operations so thatthey can be used in subsequent analysis and reporting functions. Thedefinition of “meaningful state” can potentially be specified throughconfiguration management. The event/configuration driven approachprovides flexibility if auditing/reporting requirements change.

The balance manager 504 represents the current monetary balance in themachine. It interacts with the component controller 532 (describedbelow) and responds to money insertion by incrementing its balancevalue. It fires UpdatedBalance events whenever the balance changes. Itlistens for DrainBalance events and executes component controller 532methods that return finds to the user.

The data access objects 506 is the layer of abstraction that isresponsible for persisting domain objects such as inventory objects andaudit data.

The database 508 is the persistence store (e.g. MySQL, file based,etc.). The database 508 may comprise any or all of the databasesdescribed with respect to FIG. 1.

The event dispatcher 510 acts as a proxy broker for events so thatcomponents do not need to explicitly listen to each other (i.e., haveundue knowledge of each other by reference). Some examples of eventsthat may be managed by this component include: SelectionEvent,UpdatedQueueEvent, UpdatedBalanceEvent, TrayLEDUpdateEvent,CompletedPromotionEvent, DispensedItemEvent, AuditEvent, andEnterOperatorModeEvent.

The feedback display 512 is a GUI manager (described below)sub-component and manages keypad feedback, instructions and errormessages.

The GUI (Graphical User Interface) manager 514 is a container for allGUI components and defines their layout in reference to one another. TheGUI manager 514 will also listen for events from the event dispatcher510. Swing events may be handled by the individual GUI manager 514sub-components (e.g., feedback display 512 and promotion GUI 516).

The inventory analyzer 518 performs derivation and aggregationcomputations on inventory state and audit data. The results of thesecomputations are persisted for use by other components (e.g., thepromotion manager 520). The computation functions can be initiated ondemand or by a scheduler service when the system is dormant.

The inventory manager 522 maintains the current state of the machine'sinventory. It listens for events that will ask it to update theinventory that was fired by components such as the tray manager 524(described below) and the load manager 526 (described below).

The keypad 528 is a sub-component of the GUI manager 514 and representsthe keypad data entry interface (rendered as Swing graphical objects ona touch screen LCD). It forces selection events to be fired that arerelevant to the feedback display 512 and the selection queue 530(described below).

The load manager 526 manages the inventory load processes. It mayinteract with a bar code scanner via the component controller 532(described below), such as when an operator restocks the machine'sinventory. The load manager 526 also fires inventory change events.

The component controller 532 manages (and masks the implementation of)vending machine components. Examples of vending machine componentsinclude: input devices, output devices, coin acceptors, bill validators,card readers, change dispensers, product dispensing mechanisms, and barcode readers.

The pricing model 534 is a sub-component of the promotion context 536(described below). The pricing model 534 contains all the productpricing data needed to execute the promotion described by that context.

The promotion context 536 is a sub-component of the promotion manager520 (described below). The promotion context 536 comprises all of thestate and workflow rules required by the promotion manager 520 toexecute a given promotion.

The promotion GUI 516 is a sub-component of the GUI manager 514 andrepresents promotion-related user interface rendering such as graphicalselection menus, banners, animation, etc. The promotion GUI 516 firesevents that can effect the selection queue 530 (described below) andalso listens for events from the promotion manager 520 (describedbelow).

The promotion manager 520 manages all of the promotion-related businessrules in play in a vending machine. It can manage multiple promotioncontexts simultaneously and executes all rules related to validation,execution, and workflow related to these promotion contexts. Thiscomponent implements a promotion context factory object thatencapsulates business rule logic related to promotion eligibility,selection, pricing and composition.

The selection queue 530 is a container for cumulative product selectionsmade during the course of user interaction with a promotion.

The software services 538 provides miscellaneous application services,including: configuration management, connection pooling, diagnosticlogging, and a scheduler.

The tray 540 is a sub-component of the tray manager and represents aproduct dispensing apparatus and its composite rows/slots in the vendingmachine. Its responsibilities include dispensing products and displayingLED data through the component controller 532.

The tray manager 524 is the container and manager of composite traycomponents. It is responsible for initiating and coordinatingmultiple-product dispense operations.

Referring now to FIG. 5B, illustrated therein is schematic block diagramof an embodiment 550 of exemplary software architecture, consistent withone or more embodiments of the present invention. The architecture ofembodiment 550 is a model of a software application for use in thepresent invention, designed using Unified Modeling Language™ (UML). Themodel comprises various software components 508, 510, 514, 516, 518,520, 522 and 532 and a hardware component 542. The software component510 (the event dispatcher) includes three exemplary events E510-1,E510-2, and E510-3, some of the events that may be triggered by anaddition of a product to a vending machine. The description ofembodiment 550 explains, with reference to FIG. 5B, how an addition of aproduct may be processed by various components of the modeled softwareapplication.

As illustrated, the component controller 532 is in communication with aparticular vending machine component, a bar code scanner 542. Forexample, when an operator of the vending machine adds a product to theinventory of the vending machine, the operator may scan a bar code ofthe product. The component controller 532 communicates the input of thebar code to the event dispatcher 510, which recognizes the input of thebar code as an AddItem Event E-510-1. As described above, the eventdispatcher 510 acts as a proxy broker for events, alleviating the needfor components to listen for events from other components. Thus, theevent dispatcher may communicate the AddItem Event E-510-1 to theinventory manager 522, without the need for inventory manager 522 tolisten for events from the component controller 532. The inventorymanager, in turn, causes a record of the added item to be stored in thedatabase 508 (e.g., via a data access object 506, which is notillustrated for purposes of simplicity).

The inventory analyzer 518, in turn, may analyze the current inventory(e.g., based on the addition of the product or based on another event,such as the occurrence of a predetermined time) and store an indicationof a need for a promotion for one or more products based on the currentstate of the inventory. The indication may be stored in database 508.The promotion manager 520 may access the database 508 and determine theneed for a promotion. The promotion manager 520 may then construct apromotion, based on the need. The event dispatcher 510 may determine theoccurrence of a ConstructPromotion Event E-510-2 and communicate theoccurrence of this event to the GUI manager 514. The GUI manager 514may, in turn, cause the promotion to be displayed via the promotion GUI516 sub-component. The event dispatcher 510 may detect theOutputPromotion Event E-510-3 and communicate the occurrence of thisevent to another component (e.g., promotion manager 520) and thus,indirectly, cause a record of the output of the promotion to be storedin the database 508.

D. Databases

Embodiments of the present invention may be implemented using one ormore databases. As indicated above, it should be noted that although theexample embodiment depicted in FIG. 1 includes six particular databasesstored in data storage device 110 of a vending machine 100, otherdatabase arrangements may be used which would still be in keeping withthe spirit and scope of the present invention. In other words, thepresent invention could be implemented using any number of differentdatabase files or data structures, as opposed to the six depicted inFIG. 1. Further, the individual database files could be stored ondifferent servers (e.g. located on different; storage devices indifferent geographic locations, such as on a peripheral device 255,controller 205, peripheral device controller 260 or a combinationthereof). Likewise, the program 115 could also be located remotely fromthe data storage device 110 and/or on another server. As indicatedabove, the program 115 may include instructions for retrieving,manipulating, and storing data in the databases 120, 125, 130, 135, 140and 145, as may be useful in performing the methods of the invention aswill be further described below.

1. Product Inventory Database

Turning to FIGS. 6A and 6B, illustrated therein is a tabularrepresentation of an embodiment 600 of the product inventory database120 (FIG. 1). The tabular representation 600 of the product inventorydatabase includes a number of example records or entries, each of whichdefines a product available for sale from a vending machine. Thoseskilled in the art will understand that the product inventory databasemay include any number of entries. The tabular representation of productinventory database also defines fields for each of the entries orrecords. The fields specify: (i) a product identifier 605 that uniquelyidentifies the product; (ii) a product description 510 that describesthe product; (iii) a product category 615 into which the product hasbeen categorized; (iv) a row position 620 that identifies a particularrow (and, optionally, a particular position within a particular row) ofthe vending machine in which the product is located; (v) a retail price625 of the product; (vi) a minimum selling price 630 of the product;(vii) a cost 635 of the product; (viii) an actual (current) productvelocity 640; (ix) a desired product velocity 645; and (x) a currentnumber in stock 650 that indicates a number of the product currentlyavailable for sale.

The product inventory database may be accessed by various devices and/orfor various purposes. For example, the processor of the vending machine100 may access the product inventory database to determine whether aproduct is currently available for sale from the vending machine (e.g.,whether the current number available is greater than zero). In anotherexample, the processor of the vending machine 100 or a processor of aperipheral device 255 may access the product inventory database 600 to(i) determine whether a promotion should be output; (ii) identify a typeof promotion to be output; and/or (iii) construct a promotion instance.The usage of the product inventory database of embodiment 600 toconstruct a promotion instance is described in more detail with respectto FIG. 13.

The product inventory database may be populated, for example, when anoperator of the vending machine associated with the database addsproducts to the vending machine (e.g., the operator may enter a numberof each product entered using a keypad of the vending machine or a barcode scanner in communication with the vending machine). The productinventory database may also be updated when a product is dispensed fromthe vending machine associated with the database.

It should be noted that, in some embodiments, the product inventorydatabase may store information associated with more than one vendingmachine. This may occur, for example, if the product inventory databaseis stored in controller 205, peripheral device controller 260 and/or aperipheral device 255 that is associated with more than one vendingmachine 100. In such embodiments, the product inventory database maystore a vending machine identifier in association with one or morerecords.

2. Coin Inventory Database

Turning to FIG. 7, illustrated therein is a tabular representation of anembodiment 700 of the coin inventory database 125 (FIG. 1). The tabularrepresentation 700 of the coin inventory database includes a number ofexample records or entries, each of which defines a coin denominationavailable for dispensing from a vending machine. Those skilled in theart will understand that the coin inventory database may include anynumber of entries. The tabular representation of coin inventory databasealso defines fields for each of the entries or records. The fieldsspecify: (i) a coin denomination 705; and (ii) a quantity 710 of coinsof the coin denomination.

The coin inventory database may be accessed by various devices and/orfor various purposes. For example, the processor of the vending machine100 may access the coin inventory database to update a quantity of coinsof a particular denomination after receiving an input of coins from acustomer and after dispensing coins. In another example, the processorof the vending machine 100 or a processor of a peripheral device 255 mayaccess the coin inventory database to determine (i) whether a promotionshould be output; (ii) identify a type of promotion for output; and/or(iii) construct a promotion instance by populating a parameter of thepromotion type with a value determined based on the data in the coininventory database. An example usage of the coin inventory database isdescribed in more detail with respect to FIG. 13.

The coin inventory database may be updated, for example, when anoperator of the vending machine associated with the database adds coinsto the hopper of the vending machine, when a customer inserts coins intothe vending machine and when the vending machine dispenses coins aschange for a transaction.

It should be noted that, in some embodiments, the coin inventorydatabase may store information associated with more than one vendingmachine. This may occur, for example, if the coin inventory database isstored in controller 205, peripheral device controller 260 and/or aperipheral device 255 that is associated with more than one vendingmachine 100. In such embodiments, the coin inventory database may storea vending machine identifier in association with one or more records.

3. Transaction History Database

Turning to FIGS. 8A and 8B, illustrated therein is a tabularrepresentation of an embodiment 800 of the transaction history database130 (FIG. 1). The tabular representation 800 of the transaction historydatabase includes a number of example records or entries, each of whichdefines a transaction that has occurred at a vending machine. Thoseskilled in the art will understand that the transaction history databasemay include any number of entries. The tabular representation oftransaction history database also defines fields for each of the entriesor records. The fields specify: (i) a transaction identifier 805 thatuniquely identifies a transaction; (ii) a transaction date 810 thatindicates the date on which the transaction occurred; (iii) thetransaction time 815 that indicates the time at which the transactionoccurred; (iv) a product(s) purchased 820 that stores an indication(e.g., product identifier and/or description) of products purchasedduring the transaction; (v) a transaction total 825 that indicates thepurchase total for the transaction; (vi) an amount tendered 830 thatindicates the amount of money input for the transaction by a customer;(vii) a change dispensed 835 that indicates an amount of changedispensed for the transaction; (viii) a promotion identifier 840 thatuniquely identifies an instance of promotion and/or a promotion typeoutput in association with the transaction; and (ix) a response 845 of acustomer to the instance of the promotion and/or the promotion type.

The transaction history database may be accessed by various devicesand/or for various purposes. For example, the processor of the vendingmachine 100 may access the transaction history database to storeinformation about a transaction currently in progress or recentlycompleted at the vending machine. In another example, the processor ofthe vending machine 100 or a processor of a peripheral device 255 mayaccess the transaction history database to determine (i) whether apromotion should be output; (ii) identify a type of promotion foroutput; and/or (iii) construct a promotion instance by populating aparameter of the promotion type with a value determined based on thedata in the transaction history database. An example usage of thetransaction history database is described in more detail with respect toFIG. 13.

The transaction history database may be updated, for example, upon theinitiation and/or completion of each transaction at the vending machineassociated with the database.

It should be noted that, in some embodiments, the transaction historydatabase may store information associated with more than one vendingmachine. This may occur, for example, if the transaction historydatabase is stored in controller 205, peripheral device controller 260and/or a peripheral device 255 that is associated with more than onevending machine 100. In such embodiments, the transaction historydatabase may store a vending machine identifier in association with oneor more records.

4. Promotion History Database

Turning to FIG. 9, illustrated therein is a tabular representation of anembodiment 900 of the promotion history database 135 (FIG. 1). Thetabular representation 900 of the promotion history database includes anumber of example records or entries, each of which defines a promotion,redeemable at a vending machine that had been output. Those skilled inthe art will understand that the promotion history database may includeany number of entries. The tabular representation of promotion historydatabase also defines fields for each of the entries or records. Thefields specify: (i) a promotion identifier 905 that uniquely identifiesa promotion (e.g., a promotion type and/or a promotion instance (e.g.,the first few digits of the identifier may identify the promotion typeand the remaining digits may uniquely identify the promotion instance ofthe promotion type)); (ii) a promotion type 910 that indicates the typeof the promotion (note that this field may be unnecessary if thepromotion identifier already includes this information), such as adescription of the promotion type; (iii) the promotion instance 915 thatindicates the values included in the parameters of the promotion type;and (iv) an acceptance rate 920 of the promotion (e.g., the acceptancerate of the promotion instance or the acceptance rate of the promotiontype).

The promotion history database may be accessed by various devices and/orfor various purposes. For example, the processor of the vending machine100 or controller 205 may access the promotion history database to storeinformation about a promotion output and/or responded to at the vendingmachine (e.g., the acceptance rate may be updated). In another example,the processor of the vending machine 100 or a processor of a peripheraldevice 255 may access the promotion history database to determine (i)whether a promotion should be output; (ii) identify a type of promotionfor output; and/or (iii) construct a promotion instance by populating aparameter of the promotion type with a value determined based on thedata in the promotion history database. An example usage of thepromotion history database is described in more detail with respect toFIG. 13.

The promotion history database may be updated, for example, upon theconstruction, acceptance and/or rejection of a promotion. In someembodiments, where the output of a promotion is tracked, the promotionhistory database may be updated upon the output of a promotion.

It should be noted that, in some embodiments, the promotion historydatabase may store information associated with more than one vendingmachine. This may occur, for example, if the promotion history databaseis stored in controller 205, peripheral device controller 260 and/or aperipheral device 255 that is associated with more than one vendingmachine 100. In such embodiments, the promotion history database maystore a vending machine identifier in association with one or morerecords.

5. Available Promotions Database

Turning to FIG. 10, illustrated therein is a tabular representation ofan embodiment 1000 of the available promotions database 135 (FIG. 1).The tabular representation 1000 of the available promotions databaseincludes a number of example records or entries, each of which defines apromotion that is available for output. Those skilled in the art willunderstand that the available promotions database may include any numberof entries. The tabular representation of available promotions databasealso defines fields for each of the entries or records. The fieldsspecify: (i) a promotion identifier 1005; (ii) a promotion description1010; and (iii) condition(s) for output 1015 that describe theconditions under which the promotion may be output. In some embodiments,a rules database may store rules for selecting an available promotionfor output. In such embodiments, the condition(s) for output 1015 maynot be stored in the available promotions database.

The available promotions database may be accessed by various devicesand/or for various purposes. For example, the processor of the vendingmachine 100 may access the available promotions database to select apromotion for output to a customer conducting a transaction at thevending machine. In another example, the processor of the vendingmachine 100 or a processor of a peripheral device 255 may access theavailable promotions database to add a promotion constructed by theprocessor. A usage of the available promotions database is described inmore detail with respect to FIG. 16.

Promotions may be added or removed from the available promotionsdatabase by, for example, an operator of the vending machine associatedwith the database (e.g., the operator may access the availablepromotions database remotely and add or delete promotions as desired).Alternatively or additionally, a device (e.g., the vending machine 100,a peripheral device 255, controller 205, peripheral device controller260, or a combination thereof) may add or remove available promotions(e.g., based on availability of products, coins, or success rates ofpromotions).

It should be noted that, in some embodiments, the available promotionsdatabase may store information associated with more than one vendingmachine. This may occur, for example, if the available promotionsdatabase is stored in controller 205, peripheral device controller 260and/or a peripheral device 255 that is associated with more than onevending machine 100. In such embodiments, the available promotionsdatabase may store a vending machine identifier in association with oneor more records (e.g., to indicate which promotions are available atwhich vending machine(s)).

6. Rules Database

A database of rules may be useful for various processes, in accordancewith embodiments of the present invention. For example, rules may beused to select a promotion for output from a list of pre-constructedpromotions. Such an embodiment was briefly described with reference toFIG. 10. In another example, a rules database may be used to determinewhich of a plurality of promotion types are eligible for output. In yetanother example, a rules database may be used to select a promotion typefrom a plurality of eligible promotion types. Various types ofpromotions that may be available in accordance with embodiments of thepresent invention are described in detail below. In yet another example,rules may be used to construct an offer by providing guidance for theselection of a value to populate a parameter of a promotion type. Suchan embodiment is described in more detail below with respect to FIG. 13.At least two embodiments of a rules database 145 are described below,with respect to FIG. 11 and FIG. 12. Other uses for one or more rulesdatabases are described with reference to FIG. 13.

Turning to FIG. 11, illustrated therein is a tabular representation ofan embodiment 1100 of the rules database 145 (FIG. 1). The tabularrepresentation 1100 of the rules database includes a number of examplerecords or entries, each of which defines a rule for determining aneligible promotion type, based on a state of coin inventory of a vendingmachine. Those skilled in the art will understand that the rulesdatabase may include any number of entries. The tabular representation1100 of the rules database also defines fields for each of the entriesor records. The fields specify: (i) a coin inventory state 1105 whichdescribes a state of coin inventory of a vending machine; and (ii) oneor more eligible promotion type(s) 1110 that may be output if thecorresponding. state of coin inventory is determined to have occurred.

As stated, stored rules which consider available, current data maydictate which promotion types are eligible to potentially serve as thebasis for a promotion instance. For example, such rules may dictate thatvarious coin inventory states (e.g., total hopper balance, customercredit balance) should instruct the processor of a vending machine 100and/or the processor of a peripheral device 255 to identifycorresponding promotion types as eligible promotions.

The rules database may be accessed by various devices and/or for variouspurposes. For example, the processor of the vending machine 100 orcontroller 205 may access the rules database to determine whether acurrent state of coin inventory satisfies any of the conditionsdescribed in the coin inventory state 1105, thereby determining whetherthere are any promotions eligible for output. For example, asillustrated in table 1100, customers who deposit exact change may beeligible for a combination promotion or a fixed price upsell promotion.As also illustrated in table 1100, customers who are due change afterdepositing a $1.00 or $5.00 bill and selecting one or more products maybe offered a combination promotion, a fixed price upsell promotion, or adynamically priced upsell promotion. Also, when the coins in themachine's hopper are less than that which is expected to be required inorder to provide all customers with correct change during the salesperiod, the machine may construct and output dynamically priced upsellpromotions. Such a promotion would be useful as a coin conservationtactic because customers would be offered additional products in lieu oftheir change due, which would function to preserve coin inventory in thehopper.

The rules database may store rules programmed by, for example, anoperator of a vending machine associated with the database and/oranother entity (e.g., a manufacturer of one or more products or an agentof the operator).

Turning now to FIG. 12, illustrated therein is a tabular representationof an embodiment 1200 of the rules database 145 (FIG. 1). The tabularrepresentation 1200 of the rules database includes a number of examplerecords or entries, each of which defines a condition which, ifsatisfied, dictate one or more promotions that are eligible for output.Unlike the embodiment of FIG. 11, in which the rules database storedconditions pertaining only to coin inventory state, the embodiment 1200includes conditions pertaining to various states of a vending machinethat may be considered in combination to determine a promotion typeeligible for output. Those skilled in the art will understand that therules database may include any number of entries.

The tabular representation 1200 of the rules database also definesfields for each of the entries or records. The fields specify: (i) acondition 1205 that must be satisfied in order for a correspondingpromotion type to be eligible for output, and (ii) eligible promotiontype(s) 1210 that indicate the one or more promotion types correspondingto the condition.

As described with reference to FIG. 11, the rules database of FIG. 12may be accessed by various devices and/or for various purposes. As alsonoted with reference to FIG. 11, in some embodiments the rules databasemay store information associated with more than one vending machine andthus may store a vending machine identifier in association with one ormore records.

E. Promotion Types

It should be noted that various promotion types have been referencedwith respect to FIG. 11 and FIG. 12. Provided below is a description ofeach of the referenced promotion types, along with a rule set forconstructing a promotion instance based on each promotion type.

It should farther be noted that, in accordance with one or moreembodiments, various data parameters may be available to a device (e.g.,a vending machine 100, a peripheral device 255, a controller 205, aperipheral device controller 260 or a combination thereof) for use indetermining eligibility of various promotion types as well as for use inother decisions described herein The following table includes names anddescriptions of many different data parameters that may be available forsuch decisions. TABLE 1 Data Parameters Parameter Name DescriptionMinSellingPriceAll The lowest of the Minimum Selling Prices for itemscurrently in stock MinSellingPriceItem The lowest price at which atwhich an operator wishes to sell a particular productHowManyPromotionsHaveBeenPresented The number of times that a promotionhas been presented as a promotion to a customer in one transactionperiod Planned Inventory (PI) Average Velocity * Time Left in FillPeriod (e.g. hours) Current Inventory (CI) The number of items remainingin the Vending Machine currently Reserved Inventory (RI) The number ofproducts that are “committed” or reserved for future purchase through afuture subscription/bulk promotion, as described herein. CI to PIIndicator (Current Inventory to (CI − (0.1 * RI) − PI)/CI PlannedInventory Indicator) Example: If the average velocity of Doritos is .07bags per hour and there are 168 hours left until next stockreplenishment, the PI is 11.76. If the current inventory is 18 andreserved inventory is 5, the CI to PI indicator is then 31.89%. Lowerindicators tend to indicate that an item or items are selling at anacceptable pace. Conversely, higher indicators tend to indicate thatitems are selling at a slow pace, and promotions may be necessary toincrease the pace, as described herein. AmountChangeDue The amountinserted minus the price of a selected item or items. ProximityToGoalThis data point serves as a logical “barometer” that helps the Systemunderstand how close its operation is to the goal that was set forth bythe Operator. For example, if the Operator instructs the System that theGoal is to have $300.00 Profit for this Fill Period, then this indicatorwill denote the System's performance and provide feedback as to howclose it is to meeting the Goal. The indicator may be expressed in termsof % reached. For example, if the current Profit is $200.00 and the Goalis $300.00, then the proximityToGoal is 66%. The Goal can also beexpressed in more granular period increments. That is, the Goal ofhaving $300.00 Profit per Fill Period can also be expressed as $21.42Profit per Day (assuming 14 days in a Fill Period). This indicator isconstantly updated and evaluated by the system to determine whichpromotion is most suitable given the situation and other influences.AvailableChange The current inventory of coins available in the coinmechanism OverridePromotion This will indicate whether there is apromotion type that must be used as the basis for a promotion,regardless of the conditions. For example, an Operator may inputcommands to always offer Diet Coke ® as an upsell when a customerpurchases Dasani ™ water. Target ValueComboPrice The price at which aparticular combination promotion will be sold. For example, acombination promotion may be priced at $1.00 combo or $1.25.TargetValueComboCount The number of items that the machine has madeavailable for a given combination promotion. For example, two or threeitems can be included in a combination promotion. MinBulkPrice Thelowest price at which a particular bulk or subscription can be sold.MinSellingPriceCategory This is the average minimum selling price for aspecific category. ItemCost The cost of a particular item.PromotionTakeRate (Number of times a promotion has been presented/Numberof time that promotion has been taken) This data parameter reflects therate at which customers accept particular promotion promotions.ExpectedPromotionProfit Sum of (margin of all products in promotioninstance) * promotionTakeRate

Examples of types of promotions that may be implemented in embodimentsof the present invention will now be described, along with an exemplaryrule for determining when each respective promotion type should beselected for potential output.

1. Combination Promotion

In some embodiments, a combination promotion may be constructed and/oroutput. As stated, a combination promotion enables a customer topurchase at least two products for a single price.

(i) Fixed Combination Promotion

In some combination promotion embodiments, promotions may be “fixed” inthe sense that the products in a package are pre-selected. In otherwords, in fixed combination promotion embodiments, customers do not havethe ability to select which products will be included in the package.Fixed combination promotions may be desirable as they allow for thepairing of low velocity products with high velocity products, and canaccordingly be used to increase overall inventory velocity (i.e., thebaseline velocity demand for all products in inventory).

For example, a fixed combination promotion may be constructed when ItemsA and B are selling below their ideal product velocities, and Item C isselling at or above its ideal product velocity. In such a case, allthree products may be offered as a package for a single price,reflecting a discount from that which could be realized if a customerpurchased all three products individually. Thus, if the retail prices ofItems A and B are $0.50 and $0.75, respectively, and the retail price ofItem C is set at $0.75, the system may construct a combination promotionfor the sale of all three products for $1.50, reflecting a $0.50 savingsto the customer. Such a promotion may be output to customers through oneor more output devices. For example, an LCD display located next to akeypad may read “get all three flashing items for $1.50—a 25% savings!”,and shelf-mounted LED displays located adjacent to Items A, B and C mayflash.

Fixed combination promotions are described at length in Applicant's U.S.Pat. No. 6,397,193, issued on May 28, 2003 as METHOD AND APPARATUS FORAUTOMATICALLY VENDING A COMBINATION OF PRODUCTS; and Applicant'sco-pending U.S. patent application Ser. No. 10/095372 (Attorney DocketNo. 02-007), entitled METHOD AND APPARATUS FOR VENDING A COMBINATION OFPRODUCTS; the entirety of each is incorporated by reference herein forall purposes.

(ii) Open-Ended Combination Promotion

In one embodiment, some or all products selling at below theircorresponding ideal product velocity. may be offered for sale tocustomers at a single, discounted price. For example, the vendingmachine 100 and/or peripheral device 255 may identify Products W, X, Yand Z as selling below their corresponding ideal product velocities, andmay output a promotion that provides customers with the ability topurchase any two of the four products for $1.00. More specifically, anLCD display may read “pick any 2 red flashing items for $1.00”, and LEDdisplays located proximately to the Products W, X, Y and Z may flash inred.

Once the actual product velocity of an included product increases to afavorable level (e.g. to the ideal product velocity), the control systemmay cease offering that product in open-ended combination promotions.

The following is an exemplary rule for determining when a combinationpromotion should be constructed. Such a rule may be stored, for example,in a rules database 145. If proximityToGoal is <85% And MoneyInserted isnull and selectionMade is null. Or minBulkPrice > moneyInserted >=targetValueComboCount And overridePromotion is null And The count ofhowManyPromotionsHaveBeenPresented <3 And Result from Value Combo queryis >4 records Then Construct Value Combo Promotion2. Subscription (or “Bulk”) Promotion

In some embodiments, a promotion for a subscription to one or moreproducts offered at a vending machine may be constructed and/or output.Such subscriptions would enable customers to purchase at least two unitsof a product, and redeem the products at different points in time (e.g.,one the first day, another the following day). Such subscriptionpromotions typically would provide customers with the ability topurchase the products at a discount relative to the total of the retailprices of all the units. For example, a customer may be offered theopportunity to purchase a “subscription” to 6 cans of soda, redeemableone per day, for the price of 5 cans. Subscription promotions are auseful promotion type as they enable the system to increase baselinevelocity demand for a given product in a predictable way. Thus, anydiscount provided by the promotion may be offset by the guaranteedincrease in volume that results when the customer accepts thesubscription promotion, and pays for the subscription.

In some embodiments, the system may construct and output a promotion fora subscription to one or more products offered at a vending machine inresponse to a customer's selection of a particular product.

In an example where a subscription promotion is constructed and/oroutput in response to a customer's selection of a particular product, acustomer may request to purchase Product A for $0.75. In response, thevending machine may output a promotion to purchase a subscription to 6units of Product A, redeemable once per day, for total of $3.00, or$0.50/unit. In order to realize the savings of $1.50, the customer mayaccept by depositing $3.00 into the vending machine (rather than merely$0.75) and transmitting a signal to the system via an input device toindicate his acceptance of the subscription promotion.

In some embodiments, customers who have already deposited the amountnecessary for the purchase of a single unit may be offered asubscription for an amount equal to his or her change due. For example,if the customer deposits $5.00 and selects an item priced at $0.50/unit,the machine may offer 12 units redeemable over the span of several daysin exchange for the $4.50 that otherwise would be returned to thecustomer. Alternatively, customers who have already deposited the amountnecessary for the purchase of a single unit may be prompted to depositadditional currency in order to accept a subscription offer (i.e. afixed-price upsell offer for a subscription).

Customers who accept subscription promotions may be issued, through aprinter such as the one described herein, a printout containingsubscription information (e.g. an account identifier). The printout maybe used by the customer to redeem subscription products upon subsequentvisits to the vending machine. For example, the customer may enter acode contained on the printout into the vending machine's keypad. Thecode may be, for example, assigned to the customer or selected by thecustomer (e.g., a customer may be allowed to select a personalidentification number and/or password). The system would in turndetermine whether or not the code is valid, and if so, activate aproduct dispenser corresponding to the subscribed-to product, and updatean account record in a subscription database. Alternatively, customerswho accept subscription promotions may be issued a read/write magneticstripe card that is updated upon subsequent visits to reflect theredemption of subscription products.

Subscription promotions are described at length in Applicant's U.S. Pat.No. 6,298,972, entitled METHOD AND APPARATUS FOR ESTABLISHING ANDMANAGING VENDING MACHINE SUBSCRIPTIONS, issued Oct. 9, 2001; U.S. Pat.No. 6,085,888, entitled METHOD AND APPARATUS FOR ESTABLISHING ANDMANAGING VENDING MACHINE SUBSCRIPTIONS, issued Jul. 11, 2000; and U.S.Pat. No. 5,988,346, entitled METHOD AND APPARATUS FOR ESTABLISHING ANDMANAGING VENDING MACHINE SUBSCRIPTIONS, issued Nov. 23, 1999; theentirety of each is incorporated by reference herein for all purposes.

The following is an exemplary rule for determining when subscription(“Bulk”) promotion should be constructed. Such a rule may be stored, forexample, in a rules database 145. If proximityToGoal is <85% AndmoneyInserted is null and selectionMade is null. Or moneyInserted >=minBulkPrice And OverridePromotion is null And The count ofhowManyPromotionsHaveBeenPresented <3 And Result from Bulk query is >4records Then Construct Bulk Purchase Promotion3. Dynamically Priced Upsell Promotion

In some embodiments, a dynamically priced upsell promotion may beconstructed and/or output. As stated, a dynamically priced upsellpromotion is a promotion to a customer of a first product for thepurchase of an additional product for an additional amount that is equalto an amount of change due back to the customer as a result of thecustomer's purchase of the first product. For example, if a customerinserts a $1.00 bill into a vending machine and selects a S productpriced at $0.55, the vending machine may automatically prompt thecustomer to choose an additional product in exchange for their changedue (i.e., $0.45 in the present example).

In some dynamically priced upsell embodiments, customers may bepresented with a single product to accept or reject in exchange fortheir change due. In other dynamically priced upsell embodiments,customers may be presented with several products from which to selectone or more products in exchange for their change due. In either case,the system may select one or more products to be included in an upselloffer by considering a variety of data points, including the actualproduct velocity of a product or products as compared to an idealproduct velocity. Similarly, the current inventory to planned inventoryratio (as discussed herein) may be considered. Using such data, slowmoving products can be promoted via dynamically priced upsellpromotions. Further, the system may consider the expiration date ofperishable products (e.g., as recorded in a product inventory database),so that soon-to-expire products may be offered via dynamically pricedupsell promotions. Alternatively or additionally, the category of aproduct or products may be considered, so that complementary products,may be included in dynamically priced upsell promotions (e.g., saltysnacks can be offered as upsells to purchasers of soda). Further, theproduct or products that may be included in a dynamically priced upsellpromotion may be selected by the system according to the rules includedin a rules database 145.

A dynamically priced upsell promotion may then be output to the customerin several ways. In embodiments where the customer is provided with theopportunity to accept or reject the purchase of one, pre-selectedproduct in exchange for the change due, the system may communicate thedynamically priced upsell promotion by outputting promotion contentthrough one or more output devices, including touch screens and LEDdisplays. In embodiments where the customer is provided with theopportunity to select from a plurality of products one or more product,the dynamically priced upsell promotion may similarly be communicated tothe customer on one or more output devices, including touch screens andLED displays. For example, a message may be output to a customer via atouch screen display reading “pick any one of 3 flashing items for yourchange due”, and shelf-mounted LED displays corresponding to thequalifying products may accordingly flash. Alternatively oradditionally, prices of the qualifying products may be temporarilychanged on corresponding LED displays to the amount of change due (i.e.,changed to the amount of change due until the customer selects an upsellproduct, rejects the upsell promotion, or does not respond for athreshold period of time, after which the prices would revert back tothe corresponding items' retail prices).

Further, in yet another alternate embodiment, promotion messages may beprovided to the customer through a combination of static, physical means(e.g., on a printed or painted surface on the vending machine) and oneor more electronic output devices (e.g., flashing LEDs located next toqualifying products).

In an alternate embodiment, a customer may be provided with theopportunity to receive a coupon or voucher in exchange for their changedue. Such a coupon or voucher could be printed via the printer describedherein. The coupon or voucher may allow the customer to redeem an itemwithout depositing additional currency during a subsequent visit.Indeed, such a coupon or voucher may allow the customer to purchase aproduct at a discount during a subsequent visit to the vending machine.It should be noted that such coupons or vouchers may be redeemable onlyduring a particular sales period, so that overall machine velocity maybe increased during the particular sales period.

Various systems and methods for constructing, offering and processingdynamically priced upsell promotions are described in detail withreference to Applicant's U.S. Pat. No. 6,397,193 and Applicant'sco-pending U.S. patent application Ser. No. 10/095372. Additionalsystems and methods for constructing, offering and processingdynamically priced upsell promotions are described in detail withreference to Applicant's U.S. Pat. No. 6,119,099, entitled METHOD ANDSYSTEM FOR PROCESSING SUPPLEMENTARY PRODUCT SALES AT A POINT-OF-SALETERMINAL, issued Sep. 12, 2000; and Applicant's co-pending U.S. patentapplication Ser. No. 09/603677 (Attorney Docket No. 00-004) entitledMETHOD AND APPARATUS FOR SELECTING A SUPPLEMENTAL PRODUCT TO OFFER FORSALE DURING A TRANSACTION, filed Jun. 26, 2000; the entirety of each isincorporated by reference herein for all purposes.

The following is an example of a rule that may be utilized to determinewhen dynamically priced upsell promotion should be constructed. Such arule may be stored, for example, in a rule database 145. If Consumerselects a non-flashing item from Combo Promotion Or Consumer selects anyitem while the system was engaged in NO OTHER Promotion AndproximityToGoal is <85% And Change Due from the first Transaction >minSellingPriceAll. Note: This infers that there was a first transaction(which can be defined as insertion of money and making a selection) tobegin with. And OverridePromotion is null And The count ofhowManyPromotionsHaveBeenPresented <3 And Result from Roundup queryis >4 records Then Construct Roundup Tactic4. Fixed Price Upsell Promotion

In some embodiments, a fixed price upsell promotion may be constructedand/or output. As stated, a fixed price upsell promotion is a promotionto a customer of a first product for the purchase of an additionalproduct for an additional amount that is not necessarily correlated toan amount of change due to the customer as a result of the customer'spurchase of a first product. Thus, a fixed price upsell promotion mayprovide a customer of a first product with the opportunity to purchasean additional product for an amount equal to his change due plus anadditional amount. In some embodiments, the ability to purchase anadditional product for an amount equal to change due from a firsttransaction plus an additional amount may still reflect a discount whencompared to the additional product's retail price.

For example, a customer may insert $1.00 and select a soda priced at$0.75. The vending machine may, in turn, offer a fixed price upsellpromotion for a complementary product (e.g., bag of potato chips)normally priced at $0.75 for $0.50, thereby requiring the customer todeposit an additional $0.25 to accept the fixed price upsell promotionand realize the $0.25 discount.

The additional product or products that may be included in a fixed priceupsell promotion may be selected by the system according to the dataparameters discussed with reference to dynamically priced upsellpromotions, and/or according to rules that may be stored in a rulesdatabase.

As in the case of dynamically priced upsell promotions, fixed priceupsell promotions may be communicated to customers via one or moreoutput devices, including LCD and LED displays.

The following is an exemplary rule for determining when a fixed priceupsell promotion should be constructed. Such a rule may be stored, forexample, in a rule database 145. If Consumer selects a non-flashing itemfrom Combo Promotion Or Consumer selects any item while the system wasengaged in NO OTHER Promotion And proximityToGoal is <85% And Change Duefrom the first Transaction < minSellingPriceAll Note: This infers thatthere was a first transaction (which can be defined as insertion ofmoney and making a selection) to begin with. And OverridePromotion isnull And The count of howManyPromotionsHaveBeenPresented <3 And Resultfrom Upsell query is >4 records Then Construct Upsell Promotion

5. Alternate Product Promotion

In some embodiments, an alternate product promotion may be constructedand/or output. That is, where a customer initiates a transaction topurchase a first product, the system may construct and output apromotion for an alternate product in lieu of the initially-requestedproduct. The system may determine which product or products should beoffered as substitutes by considering the actual product velocity of aproduct or products as compared to an ideal product velocity. Similarly,the current inventory to planned inventory ratio (as discussed herein)of a given product or product may be considered. Using such data, slowmoving products can be promoted via alternate product offers.

Alternatively or additionally, the profit margins of one or moreproducts may be considered by the system when determining alternateproduct offers so that higher margin products can be promoted viaalternate product offers. Further, the system may consider theexpiration date of perishable products (e.g., as may be recorded in aproduct inventory database), so that soon-to-expire products may bepromoted via alternate product promotions. Alternatively oradditionally, the category of a product or products may be considered,so that a product within the same category as the product initiallyrequested by the customer is offered as an alternate product (e.g., SodaX, from the “carbonated drinks” category is offered as an alternateproduct to a customer who selected Soda Y).

Systems and methods for constructing, offering and processing alternateproduct promotions at vending machines are described in detail inApplicant's co-pending U.S. patent application Ser. No. 09/345092(Attorney Docket No. 98-119) entitled VENDING MACHINE SYSTEM AND METHODFOR ENCOURAGING THE PURCHASE OF PROFITABLE ITEMS, filed Jun. 30, 1999,the entirety of which is incorporated by reference herein for allpurposes.

F. Processes

As stated, one benefit of embodiments of the present invention is anincrease in vending machine profits (e.g., per fill period). Applicantshave recognized that by selling products at a lower margin, but at asufficiently offsetting velocity or volume, the overall profitability ofa vending machine can be increased. Accordingly, in some embodiments, avending machine may be associated with a target product velocity for agiven fill period, and the control system will execute the inventivemethods to determine which, if any, promotions are necessary in order toincrease volume by an amount expected to yield increased profits by theend of the fill period.

Additionally, some embodiments of the present invention function toconserve coin inventory by executing one or more promotions, asdescribed herein.

According to some embodiments, a general process designed to increasethe profitability of a vending machine within a given fill period isstored in the memory of a vending machine and is executed by the controlsystem (e.g., the processor, RAM, ROM, software, etc.). The controlsystem may be the control system of a vending machine 100, the controlsystem of a peripheral device 255, the control system of a controller205, the control system of a peripheral controller 260, or a controlsystem of a combination of any or all of these devices. Generally, fromthe control system's perspective, the general process may include thethree basic steps of (i) determining whether a promotion should beoutput, based on information programmed to be pertinent to thisdetermination; (ii) if a promotion should be presented, determining theone or more promotion types that are eligible for output, based on oneor more eligibility rules; and (iii) determining, for the one or moreeligible promotion types, one or more specific promotion instances thatwill result in an acceptable profit. The process may then furthercomprise outputting one or more of the determined promotion instances(e.g., the one promotion instance associated with the highest potentialprofit may be selected). More detailed processes are described belowwith reference to FIGS. 13-16.

Referring now to FIG. 13, a flowchart illustrates a process 1300 that isconsistent with one or more embodiments of the present invention. Theprocess 1300 is a method for determining a promotion instance for outputto a customer of a vending machine. The process 1300 (or portionsthereof), and all other processes described herein unless expresslyspecified otherwise, may be performed, for example, by a vending machine100, a peripheral device 255, a controller 205, a peripheral devicecontroller 260, a user device, another computing device or a combinationthereof Each of these devices is described in detail above.Additionally, while some of the steps of a process may be performed by afirst device, other steps may be performed by another device or acombination of devices. Further, the process 1300, and all otherprocesses described herein unless expressly specified otherwise, mayinclude steps in addition to those expressly depicted in the Figures ordescribed in the specification without departing from the spirit andscope of the present invention. Similarly, the steps of process 1300 andany other process described herein, unless expressly specifiedotherwise, may be performed in an order other than depicted in theFigures or described in the specification, as appropriate.

The process 1300 begins at step 1305, in which the control systemevaluates current data in light of stored rules to identify eligiblepromotion types. Step 1305 maybe performed, for example, periodically,substantially continuously, or in response to a predetermined event. Apredetermined event may comprise, for example, an occurrence of apredetermined time (e.g., a predetermined time from a previousperformance of step 1305), an addition of a product to the vendingmachine, a dispensing of a product from the vending machine, an additionof coins to the vending machine (e.g., by a customer or by an operator),a dispensing of coins from the vending machine, an instruction from anoperator, and/or an action of a customer (e.g., an initiation of atransaction, selection of a product and/or a request for a promotion).

According to one embodiment, the process 1300 may be initiatedperiodically, randomly, upon the occurrence of a predetermined event orsubstantially continuously in an effort to form “proactive” promotions(e.g., combination deals) that are offered to all customers, withoutregard to whether a first, triggering transaction has been initiated bya customer. Alternatively or additionally, the process 1300 may beinitiated in response to a customer action in an effort to form a“reactive” promotion (e.g., a dynamically priced upsell offer) that isoffered to a customer in response to the customer's purchase of a firstproduct (i.e., a triggering transaction).

Many types of data accessible to the control system may be considered inmaking the determination of which, if any, promotion types are eligibleto be used as the basis for a promotion. Such data includes, but is notlimited to, data made available from (i) machine sensors (e.g.,thermometers, etc.) or other peripherals (e.g., bill validators or coinacceptors for determining how much money has been deposited by acustomer), and/or (ii) local and/or remote databases (e.g., storingproduct inventory information). For example, the control system may beable to access data indicative of: (1) the time left in a sales period(e.g., 72 hours and 45 minutes to next scheduled restock), (2) currentor actual product velocity of one or more products (e.g., average salesof 4 units per day), and/or (3) product attributes, such as (a) theminimum selling price at which item can be sold, (b) the full price of aproduct, (c) the marginal cost of the item to the operator of thevending machine, (d) a category description of the product (e.g., saltysnack, diet beverage, etc.), (e) the number of units of the product thatare currently available (e.g., the in-stock inventory of the givenproduct).

Thus, in an embodiment featuring a target product velocity (that isintended to increase profitability by increasing volume despite lowerper item profit margins due to promotions), the control system may haveaccess to the actual product velocity of some or all products ininventory. The control system may determine that based on the actualproduct velocity, the target product velocity for some or all productswill not be reached based on current prices, promotions, and the like.Accordingly, the control system may at this point determine that one ormore promotion types should be executed in an effort to reach the targetproduct velocity.

In one embodiment, a basic calendar indicating holidays, schoolclosings, and other periods during which sales may be relatively high orlow may be accessible by the control system (e.g., in a database). Thus,the control system may adjust an ideal product velocity to account forsuch anticipated variations in demand during a sales period.

As stated, in one embodiment employing an ideal product velocity, thecontrol system may determine promotion types, construct and selectpromotion instances, and output promotions based on the differencebetween the actual product velocity and the ideal product velocity ofone or more products. For example, if an actual product velocity for allproducts is greater than or equal to an ideal product velocity for allproducts, then the control system may determine that a promotion is tobe constructed and process 1300 may continue to step 1310. In the sameexample, if an actual product velocity for all products is less than anideal product velocity for all products, the control system maydetermine that a promotion is not to be determined and the process 1300may end or the step 1305 may be repeated in loop form until it isdetermined that a promotion is to be constructed.

At step 1310 it is determined whether at least one promotion type iseligible to serve as a basis for construction of a promotion instance.Such a determination may comprise, for example, accessing a rulesdatabase 145 (e.g., such as illustrated in FIG. 12) and determiningwhether eligibility conditions associated with one or more promotiontypes are satisfied by the current data. If it is determined, in step1310, that no promotion types are eligible, the process 1300 may returnto step 1305. If it is determined, in step 1310, that at least onepromotion type is eligible, the process 1300 may continue to step 1315.

In step 1315 a promotion instance is determined (e.g., constructed orreceived from another device) for each eligible promotion typedetermined in step 1310. It should be noted that if, in step 1310, it isdetermined that more than one promotion type is eligible to serve as abasis for the construction of a promotion instance, each of the eligiblepromotion types may be utilized in step 1315 (the construction of thepromotion instance). Alternatively, in one embodiment, a subset (e.g.,one) of the eligible promotion types may be selected (e.g., based on oneor more stored rules) and only the subset of promotion types may beutilized in step 1315.

In one embodiment, constructing a promotion instance comprisespopulating one or more parameters of a promotion type with a value. Forexample, a parameter of a promotion type may be a product selection. Thecontrol system may populate this parameter by selecting one or moreproducts to be the subject of the promotion instance being created andpopulate this parameter with the product description of the one or moreproducts selected. In another example, a parameter may comprise a price(e.g., a package price or a subscription price, depending on thepromotion type serving as the basis for the promotion). In this example,the control system may populate this parameter by determining the priceat which the product that is the subject of the promotion is to beoffered and inserting this value into the price parameter.

The determination of a value to be inserted into a particular parameterof a promotion type may be performed based on one or more rules storedfor such a purpose. In some embodiments, the determination of a valuemay be inherent in a previous step of process 1300. For example, assumethat in step 1305 data is evaluated for each product being offered forsale at a vending machine and the result of the determination is that aparticular product (e.g., product X) is selling below an ideal productvelocity. Assume further that in step 1310 it is determine that acombination promotion is an eligible promotion type. Accordingly, it maybe inherent that product X should be inserted into the product parameterthe combination promotion type (e.g., along with a product selected by acustomer). Similarly, if it is determined in step 1310 that asubscription promotion is an eligible promotion type, it may be inherentthat product X should be the value inserted into the product parameterof the subscription offer type. In another example, the change due froma first transaction may be selected as the price to be inserted into aprice parameter of a dynamically priced upsell promotion

The promotion instances constructed in step 1315 may, in one or moreembodiments, be stored in temporary memory pending further evaluation(e.g., pending calculation of the “expectedPromotionProfit” for eachpromotion instance and a comparison of the results of each calculationas described herein).

Following are exemplary rules that may be instituted in one or moreembodiments for determining how to construct promotion instances foreach eligible promotion type described herein.

Dynamically Priced Upsell Promotion Construction Rule Set: Query Select(itemId, itemLocation, itemCategory) from productInventoryTable whereamountChangeDue >= minSellingPriceItem and CI to PI Indicator >10.00%Evaluate Evaluate the list and rank a) Ascending by (amountChangeDue −itemCost) − profit maximization b) Then by the items that are in thesame category as the first item that was selected and select at most 6from the top. Construct Provide the product list to the ApplicationControl Service to display the proper promotion execution (e.g.,appropriate promotion content) on LCD as well as to flash the LED's

Fixed Price Upsell Promotion Construction Rule Set: Query Select(itemId, itemLocation, minSellingPriceItem, itemCategory) fromproductInventoryTable where minSellingPriceItem is between 25%-55% offirst selection's price and CI to PI Indicator >10.00% Evaluate Evaluatethe list and rank a) Ascending by (minSellingPriceItem − itemCost) −profit maximization b) Then by the items that are in the same categoryas the first item that was selected and select at most 6 from the top.Construct Provide the item list to the Application Control Service todisplay the proper promotion execution (e.g., appropriate promotioncontent) on LCD as well as to flash the LED's

Combination Offer (“Value Combo”) Promotion Construction Rule Set: QuerySelect (itemId, itemLocation, itemCategory) from productInventoryTablewhere minSellingPriceItem <= ((1/ targetValueComboCount) *targetValueComboPrice) and CI to PI Indicator >10.00% Evaluate Evaluatethe list and rank a) Ascending by (targetValueComboPrice − itemCost) −profit maximization b) Then by the items that are in the same categoryas the first item that was selected and select at most 6 from the top.Construct As many combo packages as possible using the items from theresult, targetValueComboCount and targetValueComboPrice. Whileconstructing the combo packages, make sure the (Σ item retail price <= ΣtargetValueComboPrice) Provide the item list to the Application ControlService to display the proper promotion execution (e.g., appropriatepromotion content) on LCD as well as to flash the LED's

Subscription (“Bulk”) Promotion Construction Rule Set: Query Select(itemId, itemLocation) from productInventoryTable where CI to PIIndicator >40.00% Evaluate Select (itemId) from the result For eachitem, calculate bulkPurchaseCount = (targetBulkPrice − desiredProfit)/itemId.minSellingPriceItem. Round down to full number. Construct Bulkpackages using the items from the result, targetValueComboCount andtargetBulkPrice. While constructing the combo packages, make sure the (Σitem retail price <= Σ targetBulkPrice) Provide (itemId,itemId.bulkPurchasecount, itemId.targetBulkPrice) to the ApplicationControl Service to display the proper promotion execution (e.g.,appropriate offer content) on LCD.

The above rules illustrate construction of a promotion instance to aparticular product. In other embodiments, a subscription may be offeredto a broad category of goods (e.g., 8 Candy bars for $5.00, withoutspecifying the candy bar, 5 carbonated beverages, 5 beverages within acertain price category or of a certain size). The following ruleillustrates how a promotion instance of a subscription to such acategory of products may be constructed. Query Select (itemId,itemLocation, itemCategory) from productInventoryTable where CI to PIIndicator >40.00% Evaluate Select (itemCategory) from the result Foreach category, calculate bulkPurchaseCount = (targetBulkPrice −desiredProfit)/ itemCategory.minSellingPriceCategory. Round down to fullnumber. Construct Bulk packages using the items from the result,targetValueComboCount and targetBulkPrice. While constructing the combopackages, make sure the (Σ item retail price <= Σ targetBulkPrice)Provide (itemId, itemCategory.bulkPurchaseCount,itemCategory.targetBulkPrice) to the Application Control Service todisplay the proper promotion execution (e.g., appropriate promotioncontent) on LCD.

Returning now to process 1300, at step 1320 the promotion instancesconstructed in step 1315 are evaluated in light of stored rules and atleast one promotion instance is selected accordingly. In general, thestored rules that are considered in step 1320 may be used to determinewhich one or more promotion instances will be output to one or morecustomers of a vending machine.

In one embodiment, the stored rules provide for a determination of whichpromotion instance(s) yields the highest profit margin when consideringthe rate at which customers have historically accepted such promotioninstances when offered. Thus, for each constructed promotion instance,the “expectedPromotionProfit” as defined above (i.e., the profit marginof the item in the promotion instance multiplied by the “take rate”, orhistoric rate at which customers have accepted the promotion instancewhen previously offered) may be calculated.

Other methods may be employed for determining the projectedprofitability of several constructed promotion instances, and selectingone or more based on such a determination. For example, a method may beemployed that scores the constructed promotion instances based on notonly profit margin and “take rate”, but also based on the vendingmachine's coin inventory state, the available inventory of an item oritems, certain arbitrarily imposed “override” priorities or weights(e.g., certain products may be favored because of business relationshipswith product manufacturers, etc.), the difference between an idealproduct velocity for a given item or group of items and the actualproduct velocity for the item or group of items, and the like.

Further, in some reactive promotion embodiments, the profitability ofthe initially requested product may be considered. Thus, in suchembodiments, the profitability of the initially requested product may becalculated by multiplying the item's profit margin (retail price minuscost) by the “take rate” of 100%, as the customer has indeed selectedthe item. The profitability of the initially requested product may thenbe compared to the expected profitability of the other promotioninstances, and the most profitable choice may be selected by the controlsystem. Thus, it may be determined that the most profitable course ofaction is to let the customer proceed as initially requested, and notoffer any promotions to the customer.

Further still, in reactive promotion embodiments featuringdynamically-priced upsell promotions and/or fixed price upsellpromotions, the profitability calculation for a given dynamically-pricedupsell promotion instance and/or fixed price upsell promotion instancecan include not only the profit margin of the additional productoffered, but also the profit margin of the first, triggering productthat was initially requested by the customer. Thus, the profitability ofa dynamically priced upsell promotion instance may be calculated asfollows:[(Rr−Cr)+(Change−Cu)]*Take Rate+(Rr−Cr)*(1−Take Rate)Where:

-   -   Rr=retail price of requested product    -   Cr=cost of requested product    -   Change=amount of change due to the customer, as determined by        subtracting the retail price of the requested product from the        amount of currency deposited in the machine    -   Cu=cost of given upsell product    -   Take rate=number of times that the promotion instance has been        accepted divided by the number of times that the promotion        instance has been offered

In an alternate embodiment, rather than constructing and selectingpromotion instances based on stored rules that consider profitability ofthe individual promotion instances, the control system may make athreshold profitability determination of the various, potentiallyeligible promotion types, and proceed to construct promotion instancesonly for those eligible promotion types that are expected to yield acertain profit. In this embodiment, the processing otherwise requiredfor constructing and evaluating individual promotion instances may bereduced or avoided.

In one or more embodiments, a respective “income contribution factor”(also referred to as a “profit contribution factor”) of one or moreproducts may be considered in constructing a promotion instance. Forexample, a product may be selected to be the subject of a promotioninstance to be output to a customer based on the product's incomecontribution factor. As used herein, an income contribution factor maybe a measure of the revenue or profit realized from the sale of aparticular product by a vending machine. In some embodiments, aproduct's income contribution factor may simply comprise the totalamount of revenue or profit generated by the product in a certain timeperiod (e.g., a fill period). In other embodiments, a product's incomecontribution factor may comprise a percentage, such as that which may becalculated by dividing the amount of profit generated by the product ina certain period of time by the total amount of profit generated by someor all products sold through the vending machine in the time period. Forexample, if a vending machine realized $100.00 in total profit during afill period, and a certain product was responsible for generating $12.00of the profit, the machine's income contribution factor would be 12%.

Returning now to process 1300, at step 1325 the one or more promotioninstances selected in step 1320 are output to one or more customers of avending machine via an output device. The output device may comprise anoutput device of, for example, a vending machine, a peripheral deviceassociated with a vending machine, and/or a user device (e.g., acellular telephone).

As described above, there are many means by which a promotion may beoutput at a vending machine. For example, a combination promotion may beoutput to the customer through a combination of LCD and LED displays.Thus, in the case of a fixed combination offer, an LCD display locatednext to a keypad may read “get all flashing items for $1.50—a 25%savings!”, and shelf-mounted LED displays located adjacent to theeligible items may flash. Alternatively, in the case of an open-endedcombination offer, an LCD display may read “pick any 2 red flashingitems for $1.00”, and LED displays located proximately to severalproducts may flash in red.

Further, as stated, customers who accept subscription promotions may beissued, through a printer such as the one described herein, a printoutcontaining subscription information (e.g., an account identifier such asa customer selected PIN). Alternatively, customers who acceptsubscription promotions may be provided with subscription informationvia other output devices, such as LED or LCD displays (e.g.,subscription codes may be provided on such displays), audio speakers, orthe like.

Additionally, dynamically priced upsell promotions may be output to thecustomer in several ways. In embodiments where the customer is providedwith the opportunity to accept or reject the purchase of one,pre-selected item in exchange for their change due, the dynamicallypriced upsell promotion may be communicated to the customer byoutputting promotion content through one or more output devices,including touch screens and LED displays. In embodiments, where thecustomer is provided with the opportunity to select from a plurality ofproducts one or more product, the dynamically priced upsell promotionmay similarly be communicated to the customer on one or more outputdevices, including touch screens and LED displays. For example, amessage may be output to a customer via a touch screen display reading“pick any one of 3 flashing items for your change due”, andshelf-mounted LED displays corresponding to the qualifying products mayaccordingly flash. Alternatively or additionally, prices of thequalifying products may be temporarily changed on corresponding LEDdisplays to the amount of change due (i.e., the prices may be changed tothe amount of change due until the customer selects an upsell product,rejects the upsell promotion, or does not respond for a threshold periodof time, after which the prices would revert back to the correspondingitems' retail prices).

Further, as stated above, in one embodiment in which a dynamicallypriced upsell promotion is selected for output, a customer may beprovided with the opportunity to receive a coupon or voucher in exchangefor their change due. Such a coupon or voucher could be printed via theprinter described herein.

In one or more embodiments, a promotion instance may be output via auser device (e.g., a cellular telephone, a pager, or a PC). For example,it may be determined that a combination promotion is to be output to allpotential customers within a predetermined range of a vending machine(e.g., all potential customers located in a building that the vendingmachine is located in or all potential customers within two hundred feetof the vending machine). Accordingly, contact information for suchpotential customers may be determined and used to output promotioncontent. For example, cellular telephone numbers and/or pager numbersfor such potential customers may be retrieved from a database ofavailable numbers and the proximate ones may be selected based on GPSinformation available to the system. In another example, electronic mail(e-mail) addresses of all such potential addresses may be retrieved froma database of available e-mail addresses (e.g., a list of e-mailaddresses of all persons working in an office building or a particularportion of an office building) and a promotion may be e-mailed to eachof the e-mail addresses.

In summary, promotions that may be provided through the inventivesystem, including but not limited to combination promotions,subscription promotions, dynamically priced upsell promotions, fixedprice upsell promotions, and alternate product promotions, may be outputto customers via one or more output devices, including but not limitedto, LED displays, LCD displays, audio speakers, CRT monitors, or anyother suitable output device.

Returning now to process 1300, at step 1330 it is determined whether anacceptance signal has been received in response to the output promotioninstance. In other words, it is determined whether a customer hasaccepted a promotion by so indicating via an input device (e.g., aninput device of a vending machine, a peripheral device associated with avending machine, or a user device). If an acceptance signal has beenreceived, the process continues to step 1335. If an acceptance signalhas not been received (e.g., a response indicating rejection of thepromotion has been received or no response has been received within apredetermined period of time), the process 1300 continues to step 1340.

It should be noted that in proactive promotion embodiments, a promotionmay be output via an output device of a vending machine and/or aperipheral device associated with a vending machine constantly and/oruntil another promotion is determined or until it is determined that thepromotion is no longer appropriate. In such embodiments, it may bedetermined whether a customer conducting a transaction at the vendingmachine during the time that the promotion is being output reacted tothe promotion by accepting it or rather whether the customer simplyconducted a conventional transaction at the vending machine.

In step 1335 the transaction is processed in accordance with thepromotion. Thus, if a customer has accepted a promotion by providing asignal via an input device (e.g., within a threshold amount of time inreactive promotion embodiments, such as by touching an “accept” field ofa touch screen display within 1 minute of the output of the promotion)the following steps may be performed. First, payment may be processed(e.g., detect an amount deposited, compare such an amount to a price,dispense change, request credit authorization from a remote computer,etc.). Second, a signal may be transmitted to an item dispensingapparatus to dispense one or more items (e.g., in the case of acombination promotion, several products would be dispensed). Moredetailed descriptions regarding how to process various promotionalpromotions previously invented by Applicants are disclosed withreference to the various U.S. Patents and patent applications disclosedherein.

It should be noted that, in embodiments where more than one promotion isoutput to a customer, step 1335 may include an additional determinationof which of the output promotions the customer has accepted.

If, in embodiments where a promotion is provided to a customerconducting a transaction at a vending machine, the customer rejects thepromotion (e.g. by touching a “reject” field of a touch screen display),the initially requested transaction may be processed in a conventionalmanner (e.g., processing payment, updating an inventory record in aninventory database, and actuating an item dispensing mechanism).Similarly, should the customer provide no response to the promotionwithin a threshold period of time (e.g., one minute), it may be assumed,by default, that the customer has not accepted the promotion and thetransaction may be processed as it would if the customer hadaffirmatively rejected the promotion.

In an alternate embodiment, should the customer reject a promotion(affirmatively or by not providing a response within a threshold time),another, alternative promotion may be output to the customer (e.g., onewith a lower expected profitability than the initially outputpromotion).

In step 1340 the results of the promotion instance are recorded in oneor more databases (e.g., the promotion history database 135). Forexample, in a reactive promotion embodiment, an indication of thepromotion instance may be stored in association with an indication ofthe customer's response to the promotion, a time at which the promotionhad been output, and an indication of the product initially requested bythe customer. In another example, in a proactive promotion embodiment,an indication of each acceptance of the promotion may be stored inassociation with a time of the acceptance and an indication of a productinitially requested by the customer (if any). For example, a customermay walk up to a vending machine at which a proactive promotion is beingoutput and simply accept the proactive promotion, without firstindicating an initially requested product. In another example, acustomer may walk up to a vending machine and, after or while thecustomer is selecting a product, be presented with a proactive promotion(a promotion the output of which was triggered by the customer'sselection of the product but which was not constructed based oninformation associated with the customer's transaction).

Step 1340 may include the steps of (i) updating an inventory record inan product inventory database to reflect the vending of items, (ii)updating an inventory record in a coin inventory database to reflect achange in a coin inventory as a result of the transaction, (iii)creating or updating a transaction record in a transaction historydatabase to indicate the acceptance or rejection of the promotion, (iv)creating or updating an acceptance or “take” rate associated with apromotion in a promotion history database to reflect the acceptance orrejection of a promotion, and/or (v) creating or updating a record in arules database. In an example of (v), a rule for selecting orconstructing a promotion instance may be modified or deleted if thepromotion is rejected a predetermined number of times, in an iterativeprocess for refining the rule.

It should be noted that the step of updating of an acceptance or “take”rate associated with a promotion in a promotion database is advantageousin that it provides updated market data that can be used in subsequentexecution of the various processes described herein. For example,updated take rates may be used to identify possible promotion types,construct promotion instances for each possible promotion type based onstored rules, and/or select promotion instances based on stored rules.In this manner, the inventive system can adapt to its local market byidentifying, constructing, and outputting promotions that are successfulin the local market, and by ceasing to offer those promotions that areunsuccessful. For example, because a promotion instance's take rate maybe considered at 1320 when determining the projected profitability of agiven promotion instance, those promotion instances with higherhistorical take rates may be more likely to be output as promotions tocustomers in 1325 than those promotion instances with relatively lowerhistorical take rates.

The process 1330 may then return to step 1305. Alternatively, theprocess 1300 may end until an evaluation of current data is triggered.An evaluation of data, and thus the initiation of process 1300, may betriggered by, for example, a predetermined event (e.g., the occurrenceof a predetermined time from a previous evaluation of data, an additionof a product, a dispensing of a product, a dispensing of change). Inanother example, process 1300 maybe triggered by an instruction from anoperator. In yet another example, process 1300 may be triggered by arequest from a customer for a promotion.

EXAMPLE

An example of the process 1300 wilt now be described. Reference will bemade to embodiment 600 (FIGS. 6A and 6B) of the product inventorydatabase 120, the embodiment 700 (FIG. 7) of the coin inventory database125, the embodiment 800 of the transaction history database 130, theembodiment 900 of the promotion history database 135, and the embodiment1200 (FIG. 12) of the rules database 145. For purposes of this example,it is assumed that a control system of a vending machine 100 and/orperipheral device 255 performs the steps of process 1300, unlessexpressly specified otherwise.

The control system may perform step 1305 by (periodically, substantiallycontinuously and/or when triggered by a predetermined event) accessingtable 1200 and determining whether any of the conditions 1205 aresatisfied by current data. For example, the control system may, everyhour, determine whether or not less than 3 days remain in the currentfill period. The control system may further determine whether or not atransaction is currently in process and/or whether the average actualproduct velocity of all inventoried products is less than the averageproduct item velocity of all inventoried products (i.e., determinewhether or not overall sales are slow). Based on these determinations,the control system may determine which, if any, promotion type iseligible for output to a customer.

Assuming, for the present example, that the control system determined(i) more than three days remain in the fill period, and (ii) a customerinitiated a first transaction (Bob Jones, a customer, inserted a $1.00into the vending machine and elected to purchase one unit of Soda X for$0.65). The control system thus determined that a combination promotionis not an eligible promotion type because the conditions of recordR-1201 are not satisfied by the current data. The control system maycontinue to perform step 1310 by determining whether a fixed priceupsell promotion, a dynamically priced upsell promotion, or an alternateproduct offer is eligible based on whether the conditions 1205 of recordR-1202 or R-1203 are satisfied by the current data. Assume that thecontrol system determines that the conditions of record R-1203 aresatisfied based on the following determinations.

The control system may first determine whether the average actualproduct velocity of all inventoried products is less than the averageideal product velocity of all inventoried products (i.e., determinewhether or not sales are slow). Such a determination may be made, forexample, by determining an average value of the values in field 640 oftable 600 (embodiment 600 of the product inventory database 120),determining an average value of the values in field 645 of table 600,and comparing the two determined averages.

The control system may then determine whether the coin inventory issufficient to provide change for all anticipated transactions throughoutthe remainder of the fill period. The control system may determine thisby evaluating stored transaction data (e.g., in the transaction historydatabase 130) and the coin inventory state (e.g., as indicated by thedata stored in the coin inventory database 125). For example, thecontrol system may (i) calculate an anticipated amount of change duethroughout the remainder of the fill period by determining a projectedtransaction volume and an average change due per transaction, and (ii)compare the anticipated amount of change due to the amount of coinscurrently in the vending machine's hopper.

If the data in table 800 (embodiment 800 of the transaction historydatabase 130) were utilized for the above determination, it would bedetermined that the transaction volume is three transactions per day,with an average of $0.35 dispensed as change per day. Thus, the controlsystem may reasonably anticipate that, assuming there are five days leftin the fill period, approximately $1.75 in change will be needed toprovide change to customers for the balance of the fill period (e.g.,further assuming all future customers pay with dollar bills and no morecoins are added to the hopper). It should be noted that alternative andadditional methods of forecasting a future amount of change due areprovided in International Patent Application Publication Number WO98/58355, entitled CURRENCTLY HANDLING APPARATUS, published Dec. 23,1998, the entirety of which is incorporated by reference herein.

If the data in table 700 (embodiment 700 of coin inventory database 125)were utilized for the above determination, it would be determine that acoin total of $1.25 exists in the coin hopper ((seven nickels*$0.05value)+(four dimes*$0.10 value)+(two quarters*$0.25 value)). This is notsufficient to meet the anticipated $1.75 in change needed for theremainder of the fill period.

It should also be noted that, rather than forecasting the ability of thevending machine to make correct change for the remainder of a fillperiod based on the change stored in the machine, in alternateembodiments a forecast of available change may be estimated based on therate at which customers use particular denominations to make purchases.Thus, in such alternate embodiments, the control system may considercoins that it expects to receive in determining whether or not themachine will likely have sufficient coin inventory to provide futurecustomers in the fill period with correct change.

Based on the above determinations, the control system may determine instep 1310 that dynamically priced upsells and alternate product offersare eligible promotion types, This is because the conditions 1205 forrecord R-1203 are satisfied by the current data. More than three daysremain in the fill period. The actual average product velocity of allinventoried products is less than the ideal average product velocity ofall inventoried products. The coin inventory is less than the forecastamount of coins necessary for providing change until the end of the fillperiod. It should be noted that dynamically priced upsell promotions, asthey function to offer customers additional products in exchange fortheir change due, provide a way for machines to engage in coinconservation when necessary, as is the case in the present example.Further, additional product promotions may always be desirable“reactive” promotions because they function to encourage customers topurchase higher margin products than that which they initially selected.

Accordingly, in step 1315, the control system determines at least onepromotion instance for the eligible promotion type(s) based on storedrules. For example, a promotion construction rule for the alternateproduct offer promotion type may provide that instances are to becreated (and stored in temporary memory pending filer evaluation) forevery product within the same category as the initially selected productthat (1) has a gross margin greater than the selected product (wheregross margin=item retail price−marginal cost), (2) has a retail priceequal to the initially selected product, and (3) has an actual productvelocity less than its ideal product velocity. Further, a promotionconstruction rule for the dynamically priced upsell promotion type mayprovide that instances are to be created (and stored in temporary memorypending further evaluation) for every product that (1) has a differentproduct category than that which was initially selected (e.g., acomplementary product), (2) has a minimum selling price less than orequal to the change due to the customer from the first, triggeringtransaction, and (3) has an actual product velocity less than its idealproduct velocity.

The control system may determine a promotion instance by, for example,constructing the promotion instance or receiving a constructed promotioninstance from another device in response to a request from the controlsystem. For example, the control system may access a rules database todetermine a rule for constructing a combination promotion followingstored promotion construction rules. It should be noted that, in someembodiments, table 1200 may include an additional field for eacheligible promotion type, the field storing one or more rues forconstructing the promotion type. In other embodiments, one or more rulesfor constructing a promotion type may be stored in another rulesdatabase or elsewhere in a memory accessible by the control system. Forexample, a control system of a peripheral device 255 may access (e.g.,search) data stored on another device (e.g., controller 205 and/orperipheral device controller 260) to determine the rule. Alternatively,the control system may determine the rule by transmitting a request toanother device (e.g., controller 205 and/or peripheral device controller260) for the rule.

In an alternate embodiment, the control system may determine one or morepromotion instances by transmitting an indication of the selectedpromotion type to another device (e.g., controller 205 and/or peripheraldevice controller 260), requesting a construction of a promotioninstance and may receive, in response, one or more constructed promotioninstances. Assume for purposes of the present example that the controlsystem itself constructs the one or more promotion instances.

As described above, a promotion instance may be constructed bypopulating each parameter of a promotion type with a respective value.The value may be selected based on the construction rule associated withthe promotion type.

The control system may first determine a promotion instance for analternate product promotion type. In order to construct a promotioninstance for an alternate product promotion, the control system mayaccess a product inventory database, such as that illustrated in FIGS.6A and 6B. Assume the data in the table 600 (embodiment 600 of productinventory database 120) is utilized to construct the one or morepromotion instances in step 1315. Based on this data, the control systemwould determine, based on the above rule set for alternate productpromotions, that Soda Y could be potentially output as an item in analternate product promotion because it is a product within the samecategory as the initially selected product (Soda) that (1) has a grossmargin greater than the selected product (Soda Y's margin=$0.45, whileSoda X's margin=$0.40), (2) has a retail price equal to the initiallyselected product ($0.65), and (3) has an actual item velocity less thanits ideal item velocity (0/day is less than 2/day). Thus, Soda Y may beselected as the value for the product parameter of the alternate productpromotion instance.

The control system may then determine a promotion instance for thedynamically priced upsell promotion type, also using the data in table600. Based on this data, the control system would determine, based onthe rule set for dynamically priced upsells, that Doritos® qualify as adynamically priced upsell offer instance because they (1) are from adifferent product category than that which was initially selected(Doritos® are from the “chips” category, whereas Soda X is from the“soda” category), (2) have a minimum selling price less than or equal tothe change due to the customer (Bob Jones) from the first, triggeringtransaction (here, $0.35 is due Bob Jones for his purchase of a $0.65item with a $1.00 bill, while the minimum selling price of Doritos® is$0.25), and (3) have an actual product velocity less than their idealproduct velocity (0.5/day is less than two/day). Thus, Doritos™ may beselected as the value for the product parameter of the dynamicallypriced upsell product parameter.

The control system may then select one of the two promotion instancesconstructed (step 1320). Assume, in the present example, the controlsystem compares the two promotion instances (alternate product offer ofSoda Y vs. dynamically priced upsell of Doritos®) to determine which ismore profitable when considering the products' respective margins andthe promotion instances' respective “take” (i.e., acceptance) rates. Asdescribed above, the control system may so compare the promotioninstances by determining the “expectedPromotionProfit” as defined herein(i.e., the profit margin of the product in the promotion instancemultiplied by the “take” rate, or historic rate at which customers haveaccepted the promotion instance when previously offered).

The respective profit margin for Soda Y and Doritos® can be determinedfrom the data in table 600. Table 600 illustrates a $0.45 margin forSoda Y (calculated as the $0.65 retail price of Soda Y minus the $0.20cost of Soda Y) and a $0.15 margin for Doritos® (calculated as $0.35price of the Doritos™ in the dynamically priced upsell offer minus the$0.20 cost of the Doritos™).

The take rate for each product when offered in an alternate productpromotion or a dynamically priced upsell promotion, respectively, can bedetermined from a Promotion History database, such as the exemplary oneillustrated in table 900. Assume the data in table 900 is used in thepresent example. Based on this data, the expected profitability of theinstance “Soda Y rather than Soda X?” can be estimated as $0.315, orapproximately $0.31 (70% of $0.45=$0.315). Also based on this data, theexpected profitability of the instance “Doritos® in addition to Soda X?”can be estimated as $0.54 [(95%*$0.15)+(100%*0.40)=($0.14+$0.40)=$0.541.It should be noted that the calculation for the dynamically pricedupsell promotion “Doritos™ in addition to Soda X?” takes into accountthe profit margin for Soda X ($0.40, as determined from the data intable 600) and the take rate for Soda X (100% since the customer hasrequested to purchase Soda X). Thus, the control system, based on thecriteria in the present example, select the instance “Doritos® inaddition to Soda X?” as the promotion instance to be output.

Accordingly, in step 1325 the promotion instance “Doritos® in additionto Soda X?” is output to Bob Jones via an output device. For example, anLCD display may read “How about some Doritos® in exchange for your $0.35change due?”. Bob may decide whether to accept the promotion or not andthe transaction will be completed as discussed above with reference tosteps 1330 through 1340.

Referring now to FIG. 14, a flow diagram illustrates another process,consistent with one or more embodiments of the present invention. Theembodiment illustrated by process 1400 of FIG. 14 will be introducedbefore the steps of 1400 are described in detail.

In one or more embodiments, a vending machine may be regarded as havinga number of possible “states”. A state may be defined by any one or morefactors relevant to overall machine profitability or to some othermetric of the vending machine. Examples of such factors include, but arenot limited to: (i) a number of each type of product contained withinthe vending machine; (ii) a number of nickels, dimes, and quarterscontained within the vending machine; (iii) a value of all the billscontained within the vending machine; (iv) a time remaining in the fillperiod; (v) a time of day; (vi) the weather; (vii) the season; and(viii) the date. For example, a first state may correspond to a vendingmachine that has six Diet Cokes® remaining, nine Cokes®, three orangedrinks, seven bags of potato chips, twelve Snicker's® bars, $427.85 incurrency, and for which there are seventy-two hours remaining in thefill period. Such a state description may be abbreviated as “S(6, 9, 3,7, 12, $427.85, 72:00),” where it is understood that the first numberrepresents the number of Diet Cokes® remaining, the second numberrepresents the number of Cokes® remaining, and so on.

A vending machine may transition from one state to another, e.g.,through the occurrence of a transaction, through the passage of time,through change in the weather, or through any other factor relevant toits state. For example, if a vending machine is in state S(6, 9, 3, 7,12, $427.85, 72:00), and five minutes pass without any transactionoccurring, the vending machine then reaches the state S(6, 9, 3, 7, 12,$427.85, 71:55). The latter state is the same as the former in everyrespect except that in the latter state, only seventy-one hours andfifty-five minutes remain, versus seventy-two hours in the former. If acustomer now buys a single Coke® from the vending machine for a price of$1.00, in a transaction that lasts for one minute, the new state of thevending machine after the transaction will be S(6, 8, 3, 7, 12, $428.85,71:54). As is apparent, the number of Cokes® has declined by one, theamount of currency in the vending machine has increased by $1.00, andthe amount of time remaining in the fill period has decreased by oneminute. Of course, numerous other state transitions are possible.

Each state S of the vending machine may be assigned, or may correspondto, a metric that may indicate, for example, the favorability of thestate S. For instance, state S(6, 8, 3, 7, 12, $428.85, 71:54) maycorrespond to the metric “98742,” while state S(5, 9, 3, 7, 12, $428.90;71:54) may correspond to the metric “98915.” If a higher value for themetric corresponds to a more favorable state of the vending machine,then the latter state is a more favorable state than the former, sincethe latter has the higher metric.

An exemplary “favorability” metric may comprise an expected value of thecontents of a vending machine at the time of the next restock event. Theexpected value may be based on an actual value of the contents of thevending machine at the time of the next scheduled restock, which may bederived as follows:${{{actual}\quad{value}} = {{{value}\quad{of}\quad{currency}\quad{in}\quad{the}\quad{machine}} + {{\Sigma_{k}\left( {\#\quad{product}\quad k} \right)} \times \left( {{cost}\quad{of}\quad{product}\quad k} \right)}}},{{where}\quad{``k"}\quad{is}\quad{taken}\quad{over}\quad{all}\quad{products}\quad{in}\quad{the}\quad{vending}\quad{machine}}$

Prior to the end of the fill period, the actual value at the nextrestock event cannot be determined with certainty, since it may dependon unpredictable activities of customers. For example, the amount ofcurrency in the machine at the next restock event will depend on thenumber of people that make purchases from the vending machine, thenumber of products they buy, and the prices they pay, none of which maybe predicted with certainty. Therefore, the expected value of a vendingmachine at the next restock event may comprise a weighted average ofvarious possible actual values that may occur at the time of the nextrestock event. The weightings of the actual values correspond to theprobabilities with which each of the possible actual values may come topass. The probabilities may be based on models of human behavior andbased on the amount of time remaining to the next restock event.

To illustrate an exemplary determination of an expected value of thecontents of a vending machine at the end of a fill period, a simplifiedvending machine will be assumed. The simplified vending machine has twoproducts: A and B. Product A has a cost (i.e., to the vending machineoperator) of $0.30, and product B has a cost of $0.20. One minute priorto end of the fill period, the simplified vending machine has $100.00 incurrency, five units of product A in stock, and one unit of product B instock. The state of the simplified vending machine may therefore bewritten, S(5, 1, $100.00, 0:01). Assume that the probability of notransactions occurring in the next minute is 0.8, that the probabilityof one transaction occurring in the next minute is 0.2, and that theprobability of more than one transaction occurring in the next minute iszero. Note that these probabilities may be derived from models based onhistorical data about transaction frequency at the vending machine.

If no transactions occur at the vending machine in the next minute, thenat the end of the fill period, the state of the vending machine will beS(5, 1, $100.00, 0:00), and the actual value of the vending machine willbe:actual value of S(5, 1, $100.00, 0:00)=$100.00+5×$0.30+1×$0.20=$101.70.

Assuming there is one transaction in the next minute, furtherprobabilities may be utilized. Assume that, in a given transaction,there is a probability of 0.4 that product A is purchased for $1.00,resulting in a state of S(4, 1, $101.00, 0:00). Assume also that thereis a probability of 0.6 that product B is purchased for $0.80, resultingin a state of S(5, 0, $100.80, 0:00). The actual values for each ofthese two resultant states are derived below: $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {4,1,{\$ 101},{0\text{:}00}} \right)}} = {{{\$ 101}{.00}} + {4 \times {\$ 0}{.30}} + {1 \times}}} \\{{\$ 0}{.20}} \\{= {{\$ 102}{.40}}}\end{matrix}$ $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {5,0,{{\$ 100}{.80}},{0\text{:}00}} \right)}} = {{{\$ 100}{.80}} + {5 \times {\$ 0}{.30}} + {0 \times}}} \\{{\$ 0}{.20}} \\{= {{\$ 102}{.30}}}\end{matrix}$

The expected value of the vending machine in state S(5, 1, $100.00,0:01) may therefore be computed as: $\begin{matrix}{{{Expected}\quad{value}} = {{\Sigma_{m}\left( {{probability}\quad{of}\quad{scenario}\quad m} \right)} \times \left( {{actual}\quad{value}} \right.}} \\{\left. {{of}\quad{state}\quad{resulting}\quad{from}\quad{scenario}\quad m} \right),{where}} \\{{``m"}\quad{is}\quad{taken}\quad{over}\quad{all}\quad{possible}\quad{scenarios}} \\{= \left\lbrack {{{prob}\left( {{no}\quad{transactions}} \right)} \times {actual}\quad{value}\quad{of}\quad{S\left( {5,1,} \right.}} \right.} \\{\left. \left. {{{\$ 100}{.00}},{0\text{:}00}} \right) \right\rbrack + \left\lbrack {{prob}\left( {1\quad{transaction}\quad{with}\quad A} \right.} \right.} \\{\left. {{sold}{\quad\quad}{for}\quad{\$ 1}{.00}} \right) \times {actual}\quad{value}\quad{of}\quad{S\left( {4,1,} \right.}} \\{\left. \left. {{{\$ 101}{.00}},{0\text{:}00}} \right) \right\rbrack + \left\lbrack {{prob}\left( {1\quad{transaction}\quad{with}\quad B} \right.} \right.} \\{\left. {{sold}\quad{for}\quad{\$ 0}{.80}} \right) \times {actual}\quad{value}\quad{of}\quad{S\left( {5,0,} \right.}} \\\left. \left. {{{\$ 100}{.80}},{0\text{:}00}} \right) \right\rbrack \\{= \left\lbrack {{{prob}\left( {{no}\quad{transactions}} \right)} \times {actual}\quad{value}\quad{of}\quad S} \right.} \\{\left. \left( {5,1,{{\$ 100}{.00}},{0\text{:}00}} \right) \right\rbrack + \left\lbrack {{{prob}\left( {1\quad{transaction}} \right)} \times} \right.} \\{{{prob}\left( {A\quad{sold}\quad{for}\quad{\$ 1}{.00}} \right)} \times {actual}\quad{value}\quad{of}\quad S} \\{\left. \left( {4,1,{{\$ 101}{.00}},{0\text{:}00}} \right) \right\rbrack + \left\lbrack {{{prob}\left( {1\quad{transaction}} \right)} \times} \right.} \\{{{prob}\left( {B\quad{sold}\quad{for}\quad{\$ 0}{.80}} \right)} \times {actual}\quad{value}\quad{of}\quad S} \\\left. \left( {5,0,{{\$ 100}{.80}},{0\text{:}00}} \right) \right\rbrack \\{= {\left\lbrack {0.80 \times 101.70} \right\rbrack + \left\lbrack {0.2 \times 0.4 \times {\$ 102}{.40}} \right\rbrack +}} \\{\left\lbrack {0.2 \times 0.6 \times {\$ 102}{.30}} \right\rbrack} \\{= {{\$ 101}{.83}}}\end{matrix}$

Therefore, state S(5, 1, $100.00, 0:01) may correspond to the expectedvalue of $101.83. As may be appreciated, expected values correspondingto a number of states with one minute remaining until the next restockevent may similarly be derived. For instance, S(4, 2, $100.20, 0:01)corresponds to an expected value of $101.93, sinceactual  value  of  S(4, 2, $100.20, 0:00) = $100.20 + 4 × $0.30 + 2 × $0.20 = $101.80;actual  value  of  S(3, 2, $101.20, 0:00) = $101.20 + 3 × $0.30 + 2 × $0.20 = $102.50;andactual  value  of  S(4, 1, $101.00, 0:00) = $101.00 + 4 × $0.30 + 1 × $0.20 = $102.40.Expected  value = (0.8 × $101.80) + (0.2 × 0.4 × $102.50) + (0.2 × 0.6 × $102.40) = $101.93.

Further, S(5, 2, $99.20, 0:01) corresponds to an expected value ofactual  value  of  S(5, 2, $99.20, 0:00) = $99.20 + 5 × $0.30 + 2 × $0.20 = $101.10;actual  value  of  S(4, 2, $100.20, 0:00) = $100.20 + 4 × $0.30 + 2 × $0.20 = $101.80;andactual  value  of  S(5, 1, $100.20, 0:00) = $100.00 + 5 × $0.30 + 1 × $0.20 = $101.70.Expected  value = (0.8 × $101.10) + (0.2 × 0.4 × $101.80) + (0.2 × 0.6 × $101.70) = $101.23.

Now, suppose the state of the vending machine is S(5, 2, $99.20, 0:02).Unlike the prior examples, this state now involves two minutes until theend of the fill period. However, the expected value for S(5, 2, $99.20,0:02) may be derived with reference to the expected values of states inwhich only one minute remains until the end of the fill period. Forinstance, suppose as before, that in the next minute, the probability ofno transactions occurring is 0.8, the probability of exactly onetransaction occurring is 0.2, and, if there is a transaction, theprobability that A will be bought for one dollar is 0.4, and theprobability that B will be bought is 0.6. In the case that notransaction occurs, after one minute the state of the vending machinewill be S(5, 2, $99.20, 0:01), a state whose expected value has beenderived above as $101.23. In the case that A is bought in the nextminute, the state of the vending machine will be S(4, 2, $100.20, 0:01),a state whose expected value was derived above as $101.93. In the casethat B is bought in the next minute, the state of the vending machinewill be S(5, 1, $100.00, 0:01), a state whose expected value was derivedabove as $101.83. Now,Expected  value  of  S(5, 2, $99.20, 0:02) = [  prob(no  transaction) * expected  value  of  S(5, 2, $99.20, 0:01)] + [prob(A  bought  for  $1.00) * expected  value  of  S(4, 2, $100.20, 0:01)] + [  prob(B  bought  for  $0.80) * expected  value  of  S(5, 1, $100.00, 0:01)] = [0.8 × $101  .23] + [  0.2 × 0.4 × $101.93] + [  0.2 × 0.6 × $101.83] = $101.36

Thus, expected values of states with one minute remaining until the endof the fill period have been derived by reference to actual values ofthe contents of a vending machine at the end of the fill period. Inturn, an expected value of a state with two minutes remaining untilroute pickup has been derived by reference to the expected value ofstates with one minute until the end of the fill period. In general, for“a”, “b”, and “y” greater than zero,expected  value  of  S(a, b, $  x, y  min ) = [  prob(no    transaction) * expected  value  of  S(a, b, $  x, y − 1  min )] + [  prob(A  bought  for  $1.00) * expected  value  of  S(a − 1, b, $  x + $1, y − 1  min )] + [prob(B  bought  for  $0.80) * expected  value  of  S(a, b − 1, $  x + $0.80, y − 1  min )]

It will be appreciated, that this procedure may be carried out by thecontrol system recursively to generate expected values of states inwhich there are three minutes remaining until the end of a fill periodbased on the expected values of states in which there are two minutesremaining; to generate expected values for states in which there arefour minutes remaining based on states in which three minutes areremaining, and so on. In this manner, in principle, an expected valuefor each possible state of the vending machine may be derived using amodel of the number of transactions possible in a given minute, and thelikelihood of various types of transactions occurring. Of course, thederivation may be extended to involve a vending machine with many moreproducts, to incorporate states that indicate the number of secondsremaining until the end of the fill period (rather than just the numberof minutes), and so on. The model may also incorporate the possibilitythat a single transaction may take more than a minute, that a singletransaction may involve more than one product, and so on. The model mayadditionally incorporate time varying probabilities. For instance, thelikelihood of a transaction occurring during any given minute may changebased on whether it is daytime or nighttime.

A promotion may thus be determined in accordance with theabove-described embodiments (i.e., based on a state of the vendingmachine). For instance, if a customer inserts a dollar bill and selectsa Coke® to purchase, an alternate product promotion may be output to thecustomer, suggesting that the customer instead purchase an orange drink.As another example, a customer may purchase an item priced at $0.70 byinserting a dollar bill. The customer may then be asked whether thecustomer would like to receive $0.30 change, or whether he would like toreceive an additional bag of pretzels instead of his change (i.e., adynamically priced upsell offer, as defined herein).

In one example, the actual value of the vending machine at the end of afill period may be equal to the total costs of the products remainingplus the amount of currency in the machine. Assuming again thesimplified vending machine described above, the following actual valuesfor three different states may be derived: $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {5,1,{{\$ 100}{.00}},{0\text{:}00}} \right)}} = {{{\$ 100}{.00}} + \left( {5 \times {\$ 0}{.30}} \right) +}} \\{\left( {1 \times {\$ 0}{.20}} \right)} \\{= {{\$ 101}{.70}}}\end{matrix}$ $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {4,1,{{\$ 100}{.65}},{0\text{:}00}} \right)}} = {{{\$ 100}{.65}} + \left( {4 \times {\$ 0}{.30}} \right) +}} \\{\left( {1 \times {\$ 0}{.20}} \right)} \\{= {{\$ 102}{.05}}}\end{matrix}$ $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {5,0,{{\$ 100}{.60}},{0\text{:}00}} \right)}} = {{{\$ 100}{.60}} + \left( {5 \times {\$ 0}{.30}} \right) +}} \\{\left( {0 \times {\$ 0}{.20}} \right)} \\{= {{\$ 102}{.10}}}\end{matrix}$ $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {3,1,{{\$ 101}{.00}},{0\text{:}00}} \right)}} = {{{\$ 101}{.00}} + \left( {3 \times {\$ 0}{.30}} \right) +}} \\{\left( {1 \times {\$ 0}{.20}} \right)} \\{= {{\$ 102}{.10}}}\end{matrix}$ $\begin{matrix}{{{actual}\quad{value}\quad{of}\quad{S\left( {4,0,{{\$ 101}{.00}},{0\text{:}00}} \right)}} = {{{\$ 101}{.00}} + {4 \times {\$ 0}{.30}} +}} \\{0 \times {\$ 0}{.20}} \\{= {{\$ 102}{.20}}}\end{matrix}$

Assume again that the probability of no transaction occurring in a givenminute is 0.8, that the probability of a customer selecting product Aduring a given transaction is 0.4, and that the probability of thecustomer selecting product B during a given transaction is 0.6. Assumefurther that product A has a posted price of $0.65 and product B has aposted price of $0.60. Assume further still that, when a customerinserts a dollar bill into a vending machine, and selects product A orproduct B to purchase, the vending machine may offer, based on rulesstored in a rules database 145, to provide an additional product A or aproduct B in return for what would otherwise be the customer's change.In other words, a rule for selecting a promotion from a list ofconstructed promotions may specify that (i) a customer who selectsproduct A is to be provided with a dynamically priced upsell promotionfor either a second unit of product A or a unit of product B, and (ii) acustomer who selects a product B is to be provided with a dynamicallypriced upsell promotion for a unit of product A or a second unit ofproduct B. Thus, a customer might insert a dollar and, by accepting adynamically priced upsell promotion, receive (i) a first unit of productA for $0.65 and a second unit of product A for $0.35, (i) a unit ofproduct A for $0.65 and a unit of product B for $0.35, (iii) a unit ofproduct B for $0.60 and a unit of product A for $0.40, or (iv) a firstunit of product B for $0.60 and a second unit of product B for $0.40.

Referring again to FIG. 14, the process 1400 will now be described withreference to an example. The process 1400 begins with step 1405, inwhich a current state of a vending machine is determined, as describedabove. Assume, for the example illustrating process 1400, that thecurrent state of a vending machine is determined to be S(5, 1, $100.00,0:01).

At step 1410, possible courses of action are determined. For example,step 1410 may comprise determining whether a promotion is to be output.Step 1410 may further comprise determining the type of promotion(s) thatmay be output and a construction of at least one promotion instance.Alternatively, step 1410 may fluffier comprise selecting apre-constructed promotion instance from a list of stored promotioninstances. Eligible promotion types and/or construction of promotionsmay be conducted in manners similar to those described with respect toprocess 1300 of FIG. 13.

For example, assume a customer inserts a dollar bill and selects productA to purchase for $0.65. One possible course of action may be to notoutput any promotion. In that case, product A and $0.35 change may beprovided to the customer. Assume further that two other courses ofaction identified are to either provide the customer with a dynamicallypriced upsell promotion for an additional unit of product A or toprovide the customer with a dynamically priced upsell promotion for aunit of product B.

In step 1415 an expected value is determined for each course of actiondetermined in step 1410. In the example, each of these possibilities hasan associated expected value for the contents of the vending machine atthe end of the fill period, and the task of the vending machine will beto determine which of the possibilities to choose in order to yield themaximum expected value.

If the first possibility is chosen (no promotion), then the vendingmachine will reach state S(4, 1, $100.65, 0:00). This state has anactual value of $102.05.

If the second possibility is chosen (dynamically priced upsell promotionfor additional unit of product A), then an additional probability mustbe incorporated. Let prob(accept A) be the probability that the customerwill accept the promotion to receive an additional unit of product A forhis change of $0.35. If the customer accepts the promotion, the vendingmachine will reach state S(3, 1, $101.00, 0:00), with an actual value of$102.10. If the customer declines the promotion, where the probabilityof his declining is 1−prob(accept A), then the vending machine willagain reach state S(4, 1, $100.65, 0:00), with an actual value of$102.05.

If the third possibility is chosen (dynamically priced upsell promotionfor unit of product B), then another probability, prob(accept B) may beincorporated to indicate the probability that the customer will acceptthe promotion for the unit of product B. If the customer accepts thepromotion, the vending machine will reach state S(4, 0, $101.00, 0:00)with an actual value of $102.20. If the customer declines the promotion,where the probability of his declining is 1−prob(accept B), then thevending machine will again reach state S(4, 1, $100.65, 0:00), with anactual value of $102.05.

It should be noted that prob(accept A) and prob(accept B) may bedetermined from models of human behavior based on e.g., the historicalresponses of customers to the vending machine's promotions (i.e., “takerates”, as defined herein). For the present example, assume thatprob(accept A)=0.7 and prob(accept B)=0.5. The expected value for thecontents of the vending machine at the end of the fill period for eachof the three possibilities may therefore be determined as follows:$\left. 1 \right)\quad\begin{matrix}{{{expected}\quad{value}} = {{actual}\quad{value}\quad{S\left( {4,1,{{\$ 100}{.65}},{0\text{:}00}} \right)}}} \\{= {{\$ 102}{.50}}}\end{matrix}$ $2\text{)}\quad\begin{matrix}{{{expected}\quad{value}} = {{{prob}\left( {{accept}\quad A} \right)} \times {actual}\quad{value}\quad{S\left( {3,1,} \right.}}} \\{\left. {{{\$ 101}{.00}},{0\text{:}00}} \right) + {\left( {1\text{-}{{prob}\left( {{accept}\quad A} \right)}} \right) \times}} \\{{actual}\quad{value}\quad{S\left( {4,1,{{\$ 100}{.65}},{0\text{:}00}} \right)}} \\{= {{0.7 \times {\$ 102}{.10}} + {\left( {1 - 0.7} \right) \times {\$ 102}{.05}}}} \\{= {{\$ 102}{.09}}}\end{matrix}$ $3\text{)}\quad\begin{matrix}{{{expected}\quad{value}} = {{{prob}\left( {{accept}\quad B} \right)} \times {actual}\quad{value}\quad{S\left( {4,0,} \right.}}} \\{\left. {{{\$ 101}{.00}},{0\text{:}00}} \right) + {\left( {1\text{-}{{prob}\left( {{accept}\quad B} \right)}} \right) \times}} \\{{actual}\quad{value}\quad{S\left( {4,1,{{\$ 100}{.65}},{0\text{:}00}} \right)}} \\{= {{0.5 \times {\$ 102}{.20}} + \left( {1 - {0.5 \times {\$ 102}{.05}}} \right)}} \\{= {{\$ 102}{.13}}}\end{matrix}$

In step 1425, the possible course of action with the highest expectedvalue is selected. Therefore, in the present example, if the simplifiedvending machine is in state S(5, 1, $100.00, 0:01), and a customerinserts a dollar bill and chooses to purchase product A, the thirdpossible course of action (i.e., the dynamically priced upsell promotionfor a unit of product B) should be selected. That is, the customershould be offered a unit of product B in lieu of his change, since sucha promotion instance results in the highest expected value for thevending machine of the three possible courses of action. Since, withoptimum choice, the vending machine can realize an expected value of$102.13 for state S(5, 1, $100.00, 0:01), the state may be assigned theexpected value of $102.13. Therefore, in embodiments where there is achoice of several promotions, an expected value may be assigned tostates based on the assumption that an optimum choice of promotioninstances in every subsequent state.

In step 1430, the course of action selected in step 1425 is executed.This may comprise, for example, outputting the selected promotion (ifthe selected course of action includes outputting a promotion) andprocessing the transaction based on the customer's response to thepromotion. If the selected course of action comprises not outputting anypromotion, step 1430 may comprise processing the transaction in aconventional manner.

In summary, it should be appreciated that many possible courses ofaction may be identified in step 1430. In general, a determination maybe made for each possible course of action as to the states that mightresult, and as to the likelihood of reaching each of those states basedon e.g., the likelihood of a customer accepting a promotion (“takerates”). An expected value may then be assigned to each possible courseof action based on the expected values of each state in which thepossible course of action may result, and based on the probability ofreaching each such state given the possible course of action. The courseof action (e.g., promotion instance) with the highest associatedexpected value may then be selected. It will be appreciated that, usinga recursive procedure, an expected value for every conceivable state maybe derived. Then, during any given transaction, all possible courses ofaction may be enumerated, the expected value determined for each, andthe course of action with the highest expected value may be chosen.

To illustrate using a formula, the expected value of a state S(a, b, $x,y min) may be determined as follows:expected value of S(a, b, $x, y min)=[prob(no transaction)×expectedvalue of S(a, b, $x, y−1min)]+[Σ_(j) prob(transaction jinitiated)×(expected value of output with the maximum expected valuegiven transaction j initiated)]where the index “j” is taken over all possible transactions that may beinitiated and where the expected values of possible courses of action(e.g., offer instances) are determined based on the expected values ofthe states that would result from such courses of action, and based onprobabilities with which a customer would respond in various ways tosuch courses of action (e.g., acceptance or “take” rates).

In other words:expected value of output given transaction j initiated=Σ_(p)prob(response p)]×(expected value of state that would result fromresponse p)where the index “p” is taken over all possible responses giventransaction j has been initiated.

In an alternate embodiment, the profitability of alternate productpromotion instances may be calculated by considering not only the profitmargin of the product to be included in the promotion instancemultiplied by the take rate, but also by considering the historic profitmargin of the possible alternate product(s) given the difference betweenthe actual product velocity and the ideal product velocity. In such anembodiment, a database accessible to the control system may provide fordifferent historic profit margins of various products that correlatewith different levels of demand for the products. For example, thevariation in historic profit margins may reflect the degree to which agiven product will be sold for less than its suggested retail price ifthe product is selling at less than its ideal product velocity. Atabular representation of an exemplary database follows: Product AProduct B Product C (cost = $0.65; (cost = $0.50; (cost = $0.50;suggested retail suggested retail suggested retail Velocity State price= $.75) price = $.80) price = $.80) If actual product Then historic Thenhistoric Then historic velocity < ideal profit margin = $0.05 profitmargin = $0.25 profit margin = $0.10 product velocity If actual productThen historic Then historic Then historic velocity = ideal profit margin= $0.07 profit margin = $0.30 profit margin = $0.25 product velocity Ifactual product Then historic Then historic Then historic velocity >ideal profit margin = $0.10 profit margin = $0.35 profit margin = $0.30product velocity

Referring now to FIGS. 15A and 15B, a flow diagram illustrates a process1500, in accordance with the alternate embodiment just described.Process 1500 may be performed, for example, by a control system of oneor more devices (e.g., a vending machine 100, a peripheral device 255, acontroller 205, a peripheral device controller 260, or a combinationthereof). Process 1500 wilt be described with continues reference to anexample, for purposes of illustrating an exemplary usage of process1500.

Process 1500 begins at step 1505, in which a product selected by acustomer for purchase at a vending machine is determined. Assume, forpurposes of the example illustrating a usage of process 1500, that it isdetermined that product A has been selected for purchase.

In step 1510, an alternate product promotion type is identified as aneligible promotion type. This may be done, for example, using a rulesdatabase such as that described with reference to FIG. 12.

In step 1515, products eligible to be included in the alternate productpromotion type are identified. In other words, the alternate productpromotion type includes a product parameter and the values for theparameter are determined. Such a determination may be made, for example,by accessing a rule for constructing an alternate product promotiontype. Continuing with the example, assuming that a customer selectedProduct A, the control system may determine that Product B and Product Care potentially eligible to be included in an alternate productpromotion type (e.g., because they are products within the samecategory, such as “soda”).

In step 1520, the control system may determine the historic profitmargin for each of the product selected for purchase by the customer andthe products selected in step 1515. Continuing with the example, thehistoric profit margin may be determined for both Product B and ProductC, as well as for Product A. Assuming that Product B is selling at itsideal product velocity, the historic profit margin would be $0.30.Assuming that Product C is selling at less than its ideal productvelocity, the historic profit margin would be $0.10. Assuming thatProduct A—the initially requested product—is selling at higher than itsideal product velocity, the historic profit margin would be $0.10.

In step 1525, the monetary amount deposited by the customer into thevending machine as payment for the initially selected product isdetermined. Continuing with the example, assuming that the underlyingtransaction that triggered the alternate product promotion required adeposit of $0.75 and that the customer deposited the exact amountrequired (i.e., $0.75).

In step 1530, the actual profit margin that is expected is determinedfor each of the product selected for purchase by the customer and theproducts selected in step 1515. Continuing with the example, the controlsystem may determine the actual profit margin that would result if thecustomer was offered a different product for the amount deposited. Thus,for Product B, which has a cost of $0.50, the actual profit margin wouldbe $0.25 ($0.75 deposited−$0.50 cost=$0.25). For Product C, which alsohas a cost of $0.50, the actual profit margin would again be $0.25($0.75 deposited−$0.50 cost=$0.25). Note that, in this event, Products Band C would be selling for $0.75 each, a discount from the products'suggested retail prices ($0.80/unit for Item B and C, respectively),thereby presenting an opportunity for the customer to purchase theproducts at a discount. The control system may also determine the actualprofit margin for the initially requested product. Thus, for ProductA—the product initially selected by the customer—the actual profitmargin would be $0.10 ($0.75 deposited−$0.65 cost=$0.10).

In step 1535 the difference between the actual profit margin and thehistoric profit margin is determined for each of the product initiallyselected by the customer and the products selected in step 1515. Thedifferences would reflect the value of the present opportunitiesavailable for a given unit of each possible alternate product, withoutregard to take rates. Thus, continuing with the example, for Product B,the difference would be −$0.05 ($0.25−$0.30=−$0.05). For Product C, thedifference would be $0.15 ($0.25−$0.10=$0.15).

In step 1540, the take rates associated with each of the productsselected in step 1515 (i.e., the take rates associated with alternateproduct promotions specifying the selected products) are determined.This may comprise retrieving the take rates from a database.

In step 1545, the expected value for each eligible alternate productpromotion instance is determined. The expected value of processing thetransaction as initially requested (i.e., dispense the initiallyrequested product and offer no promotion) is also determined. Thesedetermined expected values are then compared to one another.

Continuing with the example, assuming that the take rate for alternateproduct promotions offering Product B when Product A is initiallyrequested is 50%, the expected value of the promotion instance in whichProduct B is offered in lieu of Product A is $0.025, calculated asfollows:(−$0.05 difference between actual and historic profit margin for ItemB*50% take rate)+($0.10 actual profit margin for Item A*50% chance thatcustomer will reject alternate product offer for Item B and therebypurchase Item A)

Assuming that the take rate for alternate product promotions offeringProduct C when Product A is initially requested is 80%, the expectedvalue of the promotion instance in which Product C is offered in lieu ofProduct A is $0.14, calculated as follows:($0.15 difference between actual and historic profit margin for ProductC*80% take rate)+($0.10 actual profit margin for Product A*20% chancethat customer will reject alternate product promotion for Product C andthereby purchase Product A)

The probability of selling Product A, assuming that no alternate productis offered, is 100% because the customer has already indicated hiswillingness and ability to purchase the product. Thus, the expectedvalue for proceeding with the transaction as initially requested is$0.10, calculated as follows:$0.10 actual profit margin for Product A*100%

In step 1550, the most profitable course of action is selected andexecuted. In other words, the course of action associated with thehighest expected value is selected and executed. Continuing with theexample, the most profitable course of action is to output an alternateproduct promotion for Product C.

Thus, the vending machine may realize a greater gain on the transactionthan otherwise would have happened had the transaction simply beenprocessed as the customer initially requested. Further, the vendingmachine may realize a greater gain on a distressed product (i.e.,Product C) than reasonably could have been expected given the relativelylow historic profit margin that corresponds with a relatively low levelof demand. Additionally, the customer benefits from the ability topurchase an alternate product at a discount (here, Product C at a $0.05discount). Also, the vending machine benefits from the ability to offersuch distressed inventory at a discount without suffering from theeffects of dilution. That is, because the customer has indicated aninitial willingness to purchase Product A, it can reasonably be assumedthat the customer was not willing to purchase Product C for $0.80, itssuggested retail price. Thus, Product C may be sold to the customer for$0.75 without sacrificing $0.05 that may have otherwise been gained ifthe customer was indeed willing to purchase Product C for $0.80.

Executing the selected course of action may comprise processing thetransaction in a conventional manner if the selected course of action isto offer no promotion. Alternatively, executing the selected course ofaction may comprise outputting a promotion instance and determining acustomer's response to the promotion instance, if the selected course ofaction is a promotion.

As described above, in one or more embodiments, a device (e.g., avending machine 100, a peripheral device 255, a controller 205, aperipheral device controller 260, or a combination thereof) maydetermine a promotion instance by selecting a pre-constructed promotionfrom a list of available promotions. FIG. 16 illustrates a flow diagramof a process 1600 in accordance with such an embodiment.

Process 1600 begins with step 1605, in which it is determined whetherany condition(s) for outputting a promotion have been satisfied. Forexample, referring to table 1000 (embodiment 1000 of an availablepromotions database 140), a control system may determine whether thecondition(s) for output 1015 of any record of the table are satisfied bycurrent data. Step 1605 may be performed substantially continuously,periodically, in response to a predetermined event, or otherwise asappropriate.

If it is determined, in step 1605, that condition(s) for outputting apromotion have been satisfied, the promotion corresponding to thesatisfied condition(s) is output as a promotion instance in step 1610.For example, referring again to table 1000, if it is determined that theactual product velocity of Soda X is less than a minimum threshold(which may be stored in the table 1000 or elsewhere in a memoryaccessible by the control system) and that the number of units of SnackW in inventory is greater than ten, the promotion “P-10-321” may beoutput. A promotion instance may be output via any of the methodsdescribed herein.

It should be noted that, in the embodiment of FIG. 16 and in otherembodiments described herein, a promotion may be associated with apromotion identifier that uniquely identifies the promotion. Such anidentifier may be used, for example, to retrieve data associated withthe promotion. The data may be stored in various memories or storagedevices of one or more devices. For example, an image file (e.g., thatstores graphics to be displayed when the promotion is output) and/oraudio file (e.g., that stores one or more sounds to be output when thepromotion is output) associated with the promotion may be retrievedbased on the promotion identifier. The retrieved image file and/or audiofile may be utilized in outputting the promotion.

In one or more embodiments, a control system may customize apre-constructed promotion by inserting data relevant to a transactionassociated with the output of the promotion instance. For example,referring again to table 1000, assume it is determined that thecondition(s) for output of promotion “P-30-528” have been satisfied. Inoutputting the promotion “P-30-528”, the actual and specific amount ofchange due to the customer of the transaction associated with the outputof the promotion may be inserted into the text of the output promotioninstance. For example, assuming a customer inserted $1.00 into a vendingmachine and selected a $0.65 product for purchase, the output of thepromotion instance to the customer may read “Get Snack W for your $0.35in change!”.

It should be noted that the embodiments described with reference to thefollowing figures are presented for illustrative purposes only and arenot meant to be limiting in any sense. It should also be noted that, asused herein, the terms “an embodiment”, “embodiment”, “embodiments”,“the embodiment”, “the embodiments” “one or more embodiments”, “someembodiments”, and “one embodiment” mean “one or more embodiments” unlessexpressly specified otherwise. Further, although particular features ofthe present invention may be described with reference to one or moreparticular embodiments or figures, it should be understood that suchfeatures are not limited to usage in the one or more particularembodiments or figures with reference to which they are described.

In conclusion, while the methods and apparatus of the present inventionhave been described in terms of particular embodiments, those skilled inthe art will recognize, after reading the present disclosure, that thepresent invention may be practiced with modification and alterationwithout departing from the teachings disclosed herein.

1. A method, comprising: determining a promotion redeemable at a vendingmachine, the promotion comprising an offer distinct from a general offerto sell products from the vending machine at posted prices; and causingthe promotion to be output. 2-68. (canceled)